+1 (408) 320-0380

What is no-code / low-code development?

At the present time, the demand for app development and modernization and automation of processes seems to have become inexhaustible. From small companies to large enterprises – all of them are constantly looking for efficient ways to automate their workflows and develop business apps, websites and landing pages.

Until quite recently, the only two routes to adopt technological innovation for businesses were either by implementing ready-made products or by hiring a team of experienced developers to create them from scratch. Today, however, we can see the emergence of convenient no-code development alternatives that enable even the most technophobic users to build apps for their businesses without coding.

In this article, we are going to examine no-code development solutions, identify their benefits and explore how the no-code approach is applied in CRM systems.

What does no-code mean?

As the name implies, no-code application development is an approach to building applications that allows non-technical users to create and deploy their own applications without the need to write code or learn programming languages.

This approach is made possible through no-code platforms that simply mask the actual coding behind visual mechanisms. Their visual development interface enables users to create advanced applications by selecting and dragging and dropping pre-configured blocks to map the processes of their apps. With these no-code platforms, users can create complex websites, mobile apps, databases, integrations, and automate flows of repetitive operations without requiring technical knowledge and enormous amounts of time and resources.

In simple terms, the no-code development approach removes the need to be a coder to build functional applications and lets everyone bring their ideas to reality. The no-code platforms come along with a vast array of video tutorials and how-to guides that help everyone find the way to realize their idea.

From a business perspective, no-code development allows companies to involve non-technical staff in the creation of web and mobile application projects. It helps companies to speed up the application delivery and allows an organization to use internet resources at an unprecedented scale.

Low-code vs no-code: What’s the difference?

Low-code and no-code have truly revolutionized the digital world by making the creation of applications more accessible to different kinds of users. Although both approaches were built to simplify software development, they differ in one primary aspect.

The no-code technology provides an intuitive interface that allows users to build simple, standalone applications without coding. It is mostly used by non-technical users who have little to no coding skills and haven’t built applications before. As a rule, the circle of no-code users includes startup owners, entrepreneurs, managers or other company staff members who want to create a quick-to-build app or automate the organization’s workflows with minimal effort.

While no-code literally means building an app without code, the term “low-code” implies the use of coding for the same process. Low-code platforms also offer the ability to create software by using pre-built components, which can be customized by coding. Naturally, this ability to add customizations allows the development of more advanced applications. To use low-code solutions efficiently, a person needs to have some programming knowledge.

What are the benefits of no-code development?

The growing popularity of no-code development platforms reflects the numerous benefits these tools bring to businesses. And even though these benefits are different for each company or user, below we will try to outline the top 3 benefits that apply in almost all instances.

  • Cost-effectiveness

Having an experienced software development team isn’t cheap, and it definitely requires more costs than employing your average sales team member. So anytime you can involve your non-technical staff in a project, you’re saving time and costs that would be otherwise spent on the IT team. The no-code tools require smaller teams, fewer resources and lower maintenance costs. And if you already have an in-house team of software engineers, the no-code will allow them to spend less time on mundane operations and stay focused on more meaningful tasks.

  • Increased agility

No-code tools make your business more agile and responsive to the ever-changing demands of the market. With the rich functionality of these platforms, your business can devise its own programs faster by using default templates, business rule editors, drag-and-drop UI/UX designers, etc. In this way, no code development liberates your employees from having to wait for the IT team to get the job done, cuts down the development time, and makes your business better prepared for the future.

  • Accessibility

No-code solutions were designed with the intention to make software development and innovations more accessible to various kinds of users. One doesn’t have to hire a professional developer or get a degree in computer science to create a robust, feature-rich application. To use no-code tools, all you need is a computer, an internet connection, and inspiration to turn your ideas into reality.

At the same time, no-code platforms allow organizations to involve business-side staff in development projects. There is no doubt that business-side employees have a deep understanding of business processes, customers and the market in general. Including this knowledge in the development process opens doors to new opportunities and helps to gain a competitive advantage over business rivals.

How is the no-code approach applied in CRM systems?

Most present-day CRM solutions incorporate no-code tools for enterprise-wide, end-to-end business processes and workflow automation. With their help, businesses optimize and streamline a vast array of business operations – from auto-sending follow-ups to customers to complex orchestrating operations directed toward organizing the work of multiple departments and improving staff productivity.

The no-code BPM functionality allows non-technical users to model, standardize and automate complex flows of customer-related and administrative business tasks. It replaces coding with an intuitive visual development environment, where users can create detailed business process flowcharts with complex sequences of events, conditions and activities that have to be performed automatically. Ultimately, it enables companies to automate routine tasks and save time for building relationships with customers instead.

Getting started with BPM functionality

At first glance, BPM may seem complex and difficult to use, but once you understand how it works, you will be able to automate complex flows of tasks and activities easily. Further, we are going to walk you through the proper use of the BPM tool in EspoCRM and show how it can be implemented for your business.

To start with, the Business Process Management tool is the functionality intended to model and automate complex flows of tasks and activities that a business takes to complete a certain process, such as onboarding an employee, shipping a product order to a customer, or approving new leads.

The BPM tool works by enabling you to create a detailed flowchart (so-called diagram) that demonstrates who, what, where, when and how should complete certain tasks and activities of the process. Like any other type of diagram, the BPM flowchart is typically drawn left to right using the standardized elements depicted as circles, diamonds, rectangles and arrows that represent certain business activities.

The core BPM elements in EspoCRM

EspoCRM uses the BPMN 2.0 (Business Process Model and Notation) as a standard notation to map business processes. BPMN 2.0 is the latest version of this BPMN standard aimed at creating a unified business process modeling language. The notation represents a standardized set of graphical symbols and connectors that depict various elements of the business process. These elements are used to create business process flowcharts and can be easily understood by both technical and non-technical users.

The BPM flowchart elements can be categorized into four groups: events, gateways, activities and flows.

Flowchart ElementSymbolDescription
EventNo code, BPM EventEvents represent something that takes place during a business process.
ActivityNo code, BPM ActivityActivities represent tasks and work that take place during the process.
GatewayNo code, BPM GatewayGateways are used to diverge and converge flows.
FlowNo code, BPM FlowFlows are used to show the order of business process actions (activities, events and gateways).

Let’s take a closer look at each business process element and discover how it works.

What is an Event in BPM?

Events are displayed on a flowchart as circles and are used to depict something that occurs during a business process. Events usually have a cause or an impact and require action or allow for a reaction. That is how they influence the flow of the business process.

EspoCRM supports 4 types of events that are further subdivided into subtypes: start events, intermediate events, end events and boundary events.

Events can also be differentiated as:

  • Catching events that catch a trigger. These events are passive and happen once the trigger has been activated.
  • Throwing events that throw a result. These events are active and they are triggered by the process.

Start Events

Each business process begins with start events. They are displayed as green circles with or without an icon in the middle that represents their trigger. E.g. A start event with a clock icon shows that a process will be initiated by scheduling.

To add a start event to a flowchart, click Events dropdown > select the required event type > drag and drop it to the process flowchart canvas. You can click on the event to change its description and define its properties.

There are six subtypes of start events:

  • Start
  • Conditional
  • Timer
  • Signal
  • Error
  • Escalation
No code, BPM Start Events

Start Event

BPM Start EventThis subtype is depicted as a green circle and represents the starting point of the process or an entry point of a subprocess. It doesn’t have parameters and can be initiated manually by a user who has access to create processes by clicking the ‘Start Process’ button on the list view of processes.

The Start Event is used when you want to initiate the process manually or are not certain what should trigger the start of the process. It can also be used as an entry point of a sub-process.

Conditional Start Event

BPM Conditional Start EventA Conditional Start Event is the starting point of the process or an entry point of an event subprocess. It initiates a business process automatically when the previously specified conditions become true. Whenever the conditions are met, a new process is started. Conditions are defined in the same manner as for Workflows.

The Conditional Start Event has three types of triggers: ‘After record created’, ‘After record updated’, and ‘After record saved’. E.g. when the lead status is updated, when a new call is created, or when the task is saved, then initiate a process.

Timer Start Event

BPM Timer Start EventA Timer start event can be the starting point of the process or an entry point of a subprocess. It initiates the process by scheduling. You can configure the start of the process at a set time or date and at recurring time spans (hourly, daily, etc.). It is also possible to specify the list report which will return the records that will be used to initiate a process.

This start event subtype works perfectly if you want to create a delay before running a process or an event subprocess, configure deadlines for a process or trigger a process periodically. For example, as a gift shop owner, you can use the Timer Start Event to automate the order creation for clients that want to schedule anniversary gift delivery every year on the same date.

Signal Start Event

BPM Signal Start EventA Signal Start Event represents either the starting point of the process or an entry point of the event subprocess. The process is initiated by catching a signal broadcasted from another process. Learn more about signals here.

The Signal Start Event can be used to initiate the processes that depend on the other record approvals. For example, you can use it to initiate the payment process once an invoice is approved, to start sending newsletters once a new lead confirmed a subscription, or to begin sending client notifications if the product policy is updated.

Error Start Event

BPM Error Start EventAn Error Start Event is used only to start an event sub-process. It is triggered when the error event is thrown in the same sub-process. The Error Start Event can be used to catch any error or you can specify a certain error code to trigger only specific errors.

This start event subtype is used to resolve deviations from the default scenario of the process. The error start event triggers the alternative flow that allows to properly deal with the issues, e.g. when the invalid credit card was entered during the payment and you want to suggest an alternative payment option, or when an item is out of stock and you want to notify a customer about it and offer an alternative.

Escalation Start Event

BPM Escalation Start EventAn Escalation Start Event is used only to start an event sub-process. It is triggered when the escalation event is thrown in the same process. The Escalation Start Event can be used to catch any escalation or you can specify a certain escalation code to trigger only specific escalations.

One can use an escalation start event, when, for instance, the customer’s credit limit is above a certain threshold and a manager’s approval is required to continue the process or if you want to inform a customer about the delays in order delivery.

Compensation Start Event

BPM Compensation Start EventA Compensation Start Event initiates a sub-process compensation handler and can be used only in an event sub-process. The compensation mechanism is supposed to perform undo actions when something goes wrong. It is possible to compensate only successfully completed activities (both tasks and sub-processes).

Compensation activities are handy for mapping out processes that involve transactions, contracts and agreements, which quite often need to be rolled back and modified due to changing circumstances. You can use the compensation start event, if you want to undo or reverse the effects of committed activity, e.g. to start refund processes if a customer returns the product, to cancel flight or hotel reservations or to change car rental details due to delays.

Intermediate Events

Intermediate events occur between the start and the end events of the process. They are displayed as blue circles with or without an icon in the middle that represents their trigger. The intermediate events can be either catching or throwing.

In EspoCRM, the following types of Intermediate Events are available:

  • Conditional (catching)
  • Timer (catching)
  • Signal (catching)
  • Signal (throwing)
  • Message (catching)
  • Escalation (throwing)
  • Compensation (throwing)
BPM Intermediate Events

Conditional Intermediate Event (Catching)

BPM Conditional Intermediate Event (Catching)A Conditional Intermediate Event (Catching) stops the flow until the specified conditions become true. When a conditional intermediate event is placed on the process flowchart, it has one incoming flow and one outgoing flow, the execution of which starts when the specified conditions are met. The conditional intermediate event can be used, for instance, to stop the process until the record is approved or until the lead reaches a certain stage in the pipeline.

Timer Intermediate Event (Catching)

BPM Timer Intermediate Event (Catching)A Timer Intermediate Event (Catching) stops the flow and waits as long as it is configured in the event’s parameters. It serves as a delay mechanism based on the particular pre-configured time, date or time period. It can be used when you want to postpone the execution of the next task or activity until it becomes relevant. With its help, you can set the flow to wait for 2 days until calling new leads or start asking for product reviews a week after the last purchase.

Signal Intermediate Event (Catching)

BBPM Signal Intermediate Event (Catching)A Signal Intermediate Event (Catching) stops the process flow until the specific signal is received. This event subtype can be used to stop the registration process until the user email is confirmed or to stop preparing the order for shipment until the sales order is approved by the customer in another process.

Signal Intermediate Event (Throwing)

BPM Signal Intermediate Event (Throwing)A Signal Intermediate Event (Throwing) broadcasts a specified signal to all catching signal events. E.g. It can throw a signal once the order is delivered to initiate another process built for gathering post-delivery feedback that starts with a signal start event.

Message Intermediate Event (Catching)

BPM Message Intermediate Event (Catching)A Message Intermediate Event (Catching) stops the process flow until an email is received. The event can be triggered by emails sent by external users only. You can use this event together with the Send Message task so that the event will wait until the sent email is replied to. It is also possible to set formula conditions that the email should meet to trigger the event.

The message intermediate event can be used to send the order confirmation only when you received an “invoice paid” message or to continue the process, only when your client answered your previous email.

Escalation Intermediate Event (Throwing)

BPM Escalation Intermediate Event (Throwing)An Escalation Intermediate Event (Throwing) raises an escalation. Escalation can be caught by the event sub-process or by a boundary event (thrown within a sub-process). These events indicate that something happened outside of the normal. The Escalation Intermediate Event can be used to notify a customer that the order shipment is delayed or to inform a manager that the contract terms were not agreed upon.

Compensation Intermediate Event (Throwing)

BPM Compensation Intermediate Event (Throwing)A Compensation Intermediate Event (Throwing) initiates compensation and continues the flow execution to the next element. It can be used to process compensations in a specific order. The event may be used if a client decides to cancel the flight and hotel bookings so the travel agent has to call the hotel and airport to cancel reservations and return money to the client.

End Events

End events are used to finish the business process. They are displayed as red circles with or without an icon in the middle that represents their trigger. The end events cannot have any outgoing flows. A business process can have multiple end events.

In EspoCRM, the following types of End Events are available:

  • End
  • Terminate
  • Error
  • Escalation
  • Signal
  • Compensation
BPM End Events

End Event

BPM End EventAn End Event stops the current flow but it doesn’t stop the parallel flows. When a process gets to an end event and there are no active parallel flows within the same process, the process is finished. The End Event has no special behavior associated with it, so it is used to show that a flow is complete.

Terminate End Event

BPM Terminate End EventA Terminate End Event is used to stop all flows and subprocesses that may be running in parallel. In simple terms, it ends the entire process immediately even if some tasks and activities are active or have to be started.

The Terminate End Event is often used to end a concurrent flow that is not required anymore. E.g. there may be two different ways (concurrent flows) to resolve a certain support issue. In the process instance, both flows with tasks are active and have Terminate End Events in the end. If the manager completes one of the flows with tasks, then the support issue is resolved. The Terminate End Event completes the process and cancels the other flow.

Error End Event

BPM Error End EventAn Error End Event terminates the process and throws an error. Errors can be caught by a boundary event (if it’s thrown within a sub-process) or by an event sub-process. The Error End Event can be used, for example, if a client wants to book a hotel but there are no available rooms. The desired scenario of this flow is a reserved room in a hotel, but if there are no available rooms then the flow will end in an Error End Event, which will be caught by an Error Start Event of another flow or subprocess built to suggest an alternative to a client.

Escalation End Event

BPM Escalation End EventAn Escalation End Event terminates the flow and triggers an escalation. Escalation can be caught by a boundary event (if it’s thrown within a sub-process) or by an event sub-process. The Escalation End Event can be used if you want to inform the manager about some issue within a process. This event will be caught by the event subprocess and the issue will be handled by the manager without stopping the main process itself.

Signal End Event

BPM Signal End EventA Signal End Event terminates the flow and broadcasts a specified signal. This event can be used to initiate a new process or trigger a workflow rule. One can utilize it to end the product ordering process by throwing a signal to initiate the payment processing business process.

Compensation End Event

BPM Compensation End EventA Compensation End Event starts compensation and ends the flow once the compensation is completed. It can be used to compensate for a specific activity or all activities. Only completed activities can be compensated. Compensation is supposed to undo actions when something goes wrong. E.g. if a client wants to return a product and get a refund, cancel the subscription for services, cancel flight bookings, etc.

Boundary Events

A boundary event is an event attached to activities (usually sub-processes) and is triggered at any time when this activity is being performed. It is a type of intermediate event. They are displayed as blue circles with an icon in the middle that represents their trigger.

In EspoCRM, the following types of Boundary Events are available:

  • Error
  • Conditional
  • Timer
  • Escalation
  • Signal
  • Message
  • Compensation
BPM Boundary Events

Error Intermediate Event (Boundary)

BPM Error Intermediate Event (Boundary)An Error Intermediate Event (Boundary) is initiated once an error is thrown within the activity it’s attached to. This event cannot be non-interrupting, as the activity gets terminated once an error event is thrown. You can configure the event to catch errors with any error code or only with the specific code.

When the activity or sub-process fails and an error boundary event is triggered, it causes the flow to follow the path of the outgoing flow of this error boundary event. You can use the error boundary event to catch the errors of a certain activity or sub-process and define how they can be further handled.

Conditional Intermediate Event (Boundary)

Conditional Intermediate Event (Boundary)A Conditional Intermediate Event (Boundary) is triggered when the pre-defined conditions are met. It can be interrupting or non-interrupting. Whenever the conditions are true and the conditional event is triggered, it activates the next element of the flowchart.

E.g. You can attach the interrupting conditional boundary event to a User Task activity and specify the following conditions – if the Case status is rejected, then the task is interrupted and the user doesn’t have to complete it.

Timer Intermediate Event (Boundary)

BPM Timer Intermediate Event (Boundary)A Timer Intermediate Event (Boundary) is initiated after a specified period of time. The timer starts once the activity starts. For instance, this event can be attached to a User Task. If a user does not complete the task within a specified time period (e.g. during the next 5 days), then a manager is automatically notified.

Escalation Intermediate Event (Boundary)

BPM Escalation Intermediate Event (Boundary)An Escalation Intermediate Event (Boundary) is triggered by an escalation event of the activity (sub-process) it is attached to. It is possible to configure the event to catch escalation with a specific code or to catch any escalation. Whenever the escalation event is triggered, it activates the next element of the flowchart that as a rule handles the escalation. For example, when an order shipment is delayed, the subprocess will throw an escalation. This escalation will be caught by the escalation boundary event, which will activate the Send Message Task to notify the customer about the delay.

Signal Intermediate Event (Boundary)

BPM Signal Intermediate Event (Boundary)A Signal Intermediate Event (Boundary) is triggered once the specific signal is broadcasted. It changes the normal flow of the business process into an exception flow. A Signal Intermediate Event (Boundary) has a global scope and can catch signal events from any place, even from a different business process. A great example of using signal boundary events is in the process of newsletter sending. You can attach the event to Send Message Tasks and once the process receives the signal that a customer opted out and doesn’t want to receive newsletters anymore, the system will terminate this process.

Message Intermediate Event (Boundary)

BPM Message Intermediate Event (Boundary)A Message Intermediate Event (Boundary) is triggered once the specific email is received. While the activity to which this event is attached is running, the message boundary event waits for the specific message. It can be used, for example, to listen to the payment confirmation of the order, if the message with payment status failed is received, then the boundary event changes the normal flow and activates the cancel order task.

Compensation Intermediate Event (Boundary)

BPM Compensation Intermediate Event (Boundary)A Compensation Intermediate Event (Boundary) is triggered once compensation is initiated for an activity it is attached to. To function properly, it must be connected with a compensation activity (task or sub-process). A classic example of this event use is when your client cancels an order. In this case, the compensation boundary event will interrupt the normal sequence of the flow and start the compensation activity, which will roll back the previous arrangements and cancel the order.


Gateways represent the decision points that determine what path is taken through a process based on certain conditions. Gateways are displayed as yellow diamonds with or without an icon in the middle that represents their trigger.

They can be subdivided into:

  • Exclusive
  • Inclusive
  • Parallel
  • Event-Based
BPM Gateways

Exclusive Gateway

BPM Exclusive GatewayAn Exclusive Gateway can diverge and converge flows. In case of diverging, it is used to show that only one flow (path) out of the several alternative flows can be selected according to the predefined conditions. To be able to specify diverging conditions, you need to have at least two alternative outgoing flows. The gateway will initiate the next flow, once the first condition is met, the next conditions will be omitted. E.g. Customers can pay for their order either before shipment or after, but not in both cases.

It is also possible to specify the default flow which is marked by the slash and is chosen when there are no met conditions. In case of converging, the gateway just directs the flow to the outgoing element.

Inclusive Gateway

BPM Inclusive GatewayAn Inclusive Gateway can also be used to diverge and converge flows. In the case of diverging, it is used to show that multiple flows (paths) can be taken if the predefined conditions for the flow are true. The gateway can activate one, several or all outgoing flows if conditions are met. If no condition evaluates true, then the default flow will be selected, which is marked by the slash.

If used as a converging gateway, it will wait for all incoming flows and then continue to the outgoing element.

You can use this type of gateway, if you’re selling furniture, for instance, and when clients make the order, they can order furniture, order its delivery to their home and order its assembling. Clients can choose only to order furniture and pick it up themselves or order the furniture and delivery, or order all three options. Each described option will be one of the outgoing flows.

Parallel Gateway

BPM Parallel GatewayA parallel gateway can also diverge and converge flows. It is used to depict two concurrent activities in one business process. In case of diverging, it splits the flow into multiple parallel flows that progress at the same time. If used as a converging gateway, it waits until all incoming flows come and then continues to the next outgoing element.

You can use a parallel gateway, when, for example, a contract has to be simultaneously reviewed by top management and a client.

Event-Based Gateway

BPM Event Based GatewayAn event-based gateway can only diverge flows. It is used to trigger only one outgoing flow. It functions by stopping the flow until any of the outgoing events are triggered. Once some event gets triggered, other outgoing events are rejected.

You can use this gateway to manage payment failures, if the payment fails, then the event-based gateway waits for a message with payment confirmation and continues to process the order, or waits for 2 hours and cancels the order.

Final Thoughts

Although no-code solutions cannot fully replace coding, they have definitely made it easier to spin up and start using business software. They empower a great number of users around the world to turn their ideas into reality, improve business performance and open up new possibilities.