EspoCRM drip email campaigns with BPM

Build timed email sequences for EspoCRM leads with one BPM process per lead, timer events between messages, and automatic stops on reply or opt-out.

On this page

How EspoCRM drip email campaigns with BPM work for lead nurturing

A sales or marketing team that needs every new lead to receive a fixed sequence of emails over days or weeks, without someone sending each one by hand, needs a process that waits, sends, checks and stops. In EspoCRM, the Advanced Pack's BPMN 2.0 process engine provides that model. A process starts for each lead when the lead is captured or added to a target list, runs a send step, sets a timer event that holds the process until the next email is due, and ends when the lead replies or opts out. Each lead carries its own process instance, so a lead who joins on Monday and one who joins on Thursday move through the same sequence on their own schedules.

The design decisions sit in the early steps. Decide which trigger starts the sequence, a lead status change or target list membership, and make sure a lead cannot enter the process twice. Decide which exits end it: a reply logged against the lead, a status change to a closed value, or an opt-out flag. Confirm with your own administrators how the Advanced Pack's timer events and reply handling behave in the EspoCRM version you run, because the exact configuration options differ by release. Check that consent and opt-out fields are populated on the lead before the first send, since the process can only stop on an opt-out it can read.

Mass email campaigns fit one-off announcements sent to a segment at one time. A drip sequence fits a defined path of three or more messages that depend on elapsed time and on whether the lead responded. When the program needs branching by behavior across many channels, progressive profiling, scoring models and consent management at scale, a dedicated marketing automation tool such as Mautic may be the better fit, and the two can coexist with EspoCRM holding the sales record. The Advanced Pack is included in all EspoCRM Cloud plans and is an add-on for self-hosted editions, so confirm its license and version against your deployment before you design the process.

Which start trigger fits your lead intake

Starting the process when a lead record is created is the simplest trigger. Every new lead enters the sequence as soon as it is saved, which suits inbound forms and events where each capture is a fresh, explicit request for contact. The main risk is that creation fires before anyone has checked for an existing contact, so the same person can start several sequences.

  • Duplicates: Each duplicate record starts its own process unless a condition checks for an existing email address or a matching account first.
  • Re-entry: A lead that is deleted and recreated will restart the sequence, so decide whether re-entry should be allowed at all.
  • Consent: Consent must already be captured on the form or in the record when the process starts, because the first email may go out within minutes.
  • Imports: Bulk CSV imports also create records, so confirm whether the trigger should run for imported leads or only for leads captured live.

Check that your intake forms write a consent value and a source field before the trigger condition is evaluated.

Configuration options and when each fits

This table compares the main build choices for an EspoCRM drip sequence: workflow or BPM, timer style, reply detection, opt-out handling and template sharing. Read each row as a decision with a fit condition and a maintenance cost, then choose the simplest option that still meets your sequence length and reply-handling needs. The main takeaway is that per-lead processes give precise control but multiply what you must monitor.

ChoiceOptionWhen it fitsMaintenance cost
Automation engineWorkflow with scheduled actionsShort, linear sequences of two or three emails with no branching on repliesLow, but branching logic becomes hard to read as steps are added
Automation engineBPM process with timer and signal eventsSequences with waits, reply branches and per-lead state that must be auditedHigher, since process definitions, versions and the process log need review
Timer styleFixed delay between emailsCampaigns where every lead receives the same spacing regardless of when they joinedLow, and changes apply to new runs only, so confirm how in-flight leads behave
Timer styleDate-based timerSequences tied to an event date, such as a webinar or renewal, where send time must match a calendarModerate, because date fields need validation and time zones must be confirmed
Reply detectionSignal from inbound email handlingTeams that want the process to stop immediately when any reply arrivesModerate, since the signal path must be tested against your mailbox setup
Reply detectionStatus field checked at each timerTeams that accept a sending delay in exchange for simpler, visible state on the leadLow, but a missed status update can send an unwanted email
Opt-out handlingEmail opt-out flag checked before each sendAny sequence to contacts in jurisdictions with consent or unsubscribe dutiesLow to moderate, since every email step needs the same check
Template strategyShared sequence templates across leadsStandard nurture tracks where content is identical and changes are rareLow, with one set of templates to version and test
Template strategyPer-lead process instances with lead-specific valuesPersonalized sequences where formula values differ by lead source or segmentHigher, because each instance carries state that must be reviewed when a rule changes

How to set up a drip sequence in EspoCRM step by step

This sequence sends a timed series of emails to each lead, with one BPM process instance per lead. It stops when the lead replies or opts out, and it leaves a process log that shows every step a lead passed through.

  1. Confirm the Advanced Pack is installed

    An administrator confirms that the Advanced Pack is installed and that the Workflows and Business Process Management areas appear in the administration menu. The Advanced Pack is included in all EspoCRM Cloud plans, and self-hosted instances need it added as an extension. Confirm that the scheduled job runner (cron or the equivalent scheduled task) is active on the server, because timer events depend on background jobs. The step is complete when a test BPM process can be created and saved without errors. Review the Advanced Pack page to confirm which BPMN elements your version supports before you design the flow.

  2. Create email templates and the sender

    A marketing owner writes each email in the sequence as an email template, using merge fields for the lead's first name and company. Each template includes an opt-out link or instruction that the process can rely on, and the sender address is tied to a mailbox that your team has configured and tested. Keep one template per touchpoint so that edits to one email do not change the others. The step is complete when each template renders correctly for a sample lead and a test message arrives in an internal inbox with the expected sender name and reply address.

  3. Create the BPM process with a start event

    A CRM administrator creates a new BPM process for the Lead entity and adds a start event that fires when a lead is captured or when a lead is added to a chosen target list. Decide which trigger matches your intake, because the start event defines when a new process instance begins. Each lead that meets the trigger gets its own instance, so a lead cannot be pulled into a second copy of the same sequence by accident if your trigger conditions are written carefully. The step is complete when creating a test lead produces exactly one process instance that is visible in the process log.

  4. Add send and timer steps between emails

    The administrator adds a send step for the first email, then a timer event, then the next send step, and repeats this pattern for each email in the sequence. The timer intervals are set in the process designer and should match the cadence your marketing team agreed in writing. Use formula expressions only where a value must be calculated, and confirm the formula syntax in the Formula documentation for your version. The step is complete when a test instance reaches the first timer and shows a waiting state in the process log, which confirms that the timer is scheduled and that the next send has not fired early.

  5. Add the reply and opt-out gateway

    Before each send step, the administrator adds an exclusive gateway that checks two conditions: whether the lead has replied and whether the lead has opted out. A reply or an opt-out routes the instance to an end event, so no further emails are sent. The condition fields must be populated by a dependable mechanism, such as a field set by your inbound email handling or by an opt-out action on the template, so confirm how your version records these states before you rely on them. The step is complete when marking a test lead as replied or opted out ends the instance at the next gateway check.

  6. Test the full path with internal leads

    The team creates several internal test leads with addresses that only the testers control, then runs them through every branch of the process. Testers check that each email arrives once, that the timers hold between sends, and that the reply and opt-out paths both end the instance correctly. If the production timers are too long to test in practice, the team can temporarily set shorter intervals in a copy of the process and then restore the agreed values before publishing. The step is complete when every test lead ends in the expected state and the process log matches the designed path for each one.

  7. Publish and monitor the first live leads

    An administrator activates the process for production only after the test results are signed off by the marketing and sales owners. Confirm that the start trigger matches only the intended leads, and assign a named person to review the process log during the first live run. Watch for instances that stall at a timer, leads that receive an email after replying, and bounces reported by the mailbox. The step is complete when the first live leads move through the first send and timer without errors, and the owner confirms the sequence is behaving as designed in the process log.

Where drip campaigns fail and how to prevent it

Most drip campaign problems are not email problems. They come from process logic that does not check the lead's current state, from scheduled work that never runs, and from sending infrastructure that was never warmed or authenticated. The cards below cover the failure modes we see most often and the design step that prevents each one.

Emails sent after a reply

A sequence keeps firing after the lead has already answered, which damages trust fast. Place a check before every send step that looks at the lead's reply status and the last activity date, and route the process to a stop path when a reply exists. Also decide who owns the conversation once a reply lands, and have the process hand the lead to that person in the same step. Test this with a lead that replies between two timer events, not only at the start.

Sends to opted-out contacts

Opt-out handling fails when the flag is stored in one place and the sequence reads another, or when an unsubscribe is recorded by a mail tool that never updates the CRM. Read the opt-out field immediately before each send, not only when the lead enters the process. Confirm with your legal or privacy team which consent basis applies to each sequence, and treat a missing or unclear value as do not send. Keep a test lead that is opted out so you can prove the stop path works.

Leads re-entering the process

A lead that is captured twice, matched to a target list again, or edited so that a start condition becomes true again can start a second copy of the same sequence. Add a guard in the start condition that checks whether an active process already exists for that lead, and define how re-entry should behave after a campaign has finished. Review the start trigger for both new records and updated records, since update triggers are the usual cause of duplicates.

Cron not running, so timers never fire

Timer events in BPM only advance when EspoCRM's background jobs run, and those depend on a scheduled task on the server. If cron is missing, misconfigured or running under a different user, emails stall silently and no error appears in the lead's view. Confirm the scheduled task is installed on the server that runs EspoCRM, check that background jobs execute on a set interval, and alert on a backlog of waiting processes. Ask your hosting team who owns this check after go-live.

Deliverability problems

Even a correct sequence can land in spam if sending domains lack authentication, volumes jump without warm-up, or bounces are ignored. Set up SPF, DKIM and DMARC for the sending domain with your mail team, and confirm how EspoCRM's mail configuration sends messages. Review bounce handling so hard bounces are removed from the sequence, and keep daily volumes steady when a new campaign starts. Measure complaints and bounces per sequence, not only overall.

How timers, cron and the process log interact

Timer events in a drip sequence only fire when EspoCRM's background jobs run, so cron or a scheduled task is part of the campaign design, not an afterthought. The server configuration docs list cron or a scheduled task as required for background jobs. If that job stops, a process waiting between the second and third email stays where it is and the lead receives nothing. Before go-live, confirm that the cron entry runs on the schedule you expect, runs under the account that owns the EspoCRM files, and triggers an alert when it fails. Then test with a short illustrative timer on a test lead and record the gap between the due time and the actual send.

To audit one lead's path, open that lead's process instances in the BPM views provided by the Advanced Pack and confirm which element the process is waiting at, when it entered each timer, and whether it completed or was stopped by a reply or opt-out. Check the history for each send and for the signal or condition that ended the flow, along with any error entries. Compare those timestamps with the cron run records on the server. If a send is late, the delay usually sits between the timer's due time and the next job execution. Confirm the exact labels and the level of detail the log records in your EspoCRM version, since menu names and views can change between releases. The Advanced Pack page describes the feature set at a high level.

Treat timer precision as something to measure, not assume. The documentation supplied for this page does not state a guaranteed trigger tolerance, so ask the EspoCRM team for the expected behavior and run timing tests on your own hosting. Then agree the acceptable tolerance with the marketing owner. A welcome email that arrives a few minutes late is a minor issue, while a time-limited offer may not be. Record the cron interval, the test results and the process names in the campaign runbook so that an upgrade or hosting change can be checked against them. Also decide in advance who reads the process log when a prospect questions whether they received a message.

Security and consent considerations for automated email

Automated drip sequences send email on your behalf without a person reviewing each message, so consent state, access to templates and processes, and administrator practices carry more weight than in manual outreach. The cards below cover the controls to design before the first process goes live.

Consent records and opt-out handling

Every drip process should read a consent or opt-out field on the lead before each send, not only at enrollment. Decide where consent is recorded, who can change it, and whether an unsubscribe from a previous campaign blocks new sequences. Confirm with your legal or privacy team which lawful basis applies to each lead source, and test that a lead who opts out mid-sequence receives nothing further and that the process stops cleanly.

Role permissions on templates

Email templates and campaign processes change what customers receive, so edit rights should be narrower than view rights. Restrict who can create or modify email templates, workflows and BPM process definitions, and review which roles can publish changes to live processes. Check that marketing users can adjust copy without being able to alter the timer logic or the stop conditions that protect opted-out contacts.

API and integration access for new leads

When leads arrive from web forms or other systems through the REST API, each integration should use a dedicated API user with only the permissions it needs to create leads. EspoCRM supports API key, HMAC and basic authentication, and the documentation describes HMAC as the most secure method and basic authentication as not recommended. Confirm which method each integration uses, rotate its keys on a schedule, and check that the API user cannot read or edit unrelated records.

Separating administrator accounts

Build and test campaign processes under a named builder account, and run daily sending and reply handling under ordinary user accounts. Administrator accounts can alter the Entity Manager, workflows and authentication settings, so an administrator who also runs campaigns widens the impact of a compromised session. Also confirm that admin password recovery is disabled, as the EspoCRM security guidance recommends.

Sign-in hardening for campaign users

Campaign users can change what thousands of prospects receive, so their sign-in should be strong. EspoCRM's security guidance recommends enforcing a password policy, requiring two-factor authentication, and limiting auth token lifetime. If you use single sign-on through OpenID Connect, note that EspoCRM's own two-factor authentication is not compatible with OIDC, so enforce the second factor at your identity provider instead.

IP restrictions and admin exposure

Restricting access by IP address reduces the reach of stolen credentials against the administrative and campaign-editing surfaces. Decide which networks may reach the admin interface and the process designer, and whether staff working remotely need a VPN path. Keep in mind that a sending process runs in the background, so an attacker who gains edit access can change a live sequence without logging in from a new location every time. Review the access log and process history regularly.

Questions buyers ask about EspoCRM drip campaigns

What does a drip campaign build in EspoCRM cost?

The cost is the written scope of the build, and the main components are design, configuration, testing and handover. A drip campaign needs a lead-capture trigger, one process per lead, timer events between emails, reply and opt-out handling, and a test plan. The largest drivers are the number of sequences, the number of data sources feeding leads in, how many reply or opt-out paths you need, and whether email templates must be written or adapted. Costs are one-time for the build and recur only if you buy ongoing support or a retainer. The Advanced Pack, which provides Business Process Management and workflows, is included in all EspoCRM Cloud plans. Cloud pricing is 15 US dollars per user per month on Basic (minimum 3 users), 25 dollars on Enterprise (minimum 5 users) and 69 dollars on Ultimate (minimum 10 users), according to the EspoCRM pricing page. Ask for a quote that separates the build, the hosting, the licenses and any recurring support.

How long does it take to build a drip campaign process?

Duration depends on how many sequences you run and how many systems need to feed them. A single sequence with one entry point and simple stop conditions is a small job, while several sequences with reply tracking, opt-out handling and reporting take longer to design and test. Timing is also set by how quickly your marketing team can approve email copy and cadence, since copy changes do not require rebuilding the process. DeployOpen works to a written scope with agreed timelines before work starts, so ask for the duration in the statement of work and confirm which milestones depend on your approvals.

What must our team provide before a drip campaign build starts?

Your team needs to provide the campaign design and the sources of truth the process depends on. That means the sequence outline with the number of emails, the delay between them and the exit conditions, plus the lead statuses and fields that mark a reply or an opt-out. You also need a named business owner who approves email copy, a test mailbox and sending domain configured for your mail server, and access to an environment where test leads can run safely. If the campaign will capture leads from a web form or import, provide the sample data and field mapping. Confirm the sending infrastructure and bounce handling with your email provider, because the CRM process cannot fix a poorly configured domain.

Can an internal EspoCRM admin build a drip campaign without a partner?

An admin with working knowledge of EspoCRM can build a simple drip campaign, but the work involves several specialist skills. The Workflows and BPMN 2.0 process engine in the Advanced Pack covers timers, conditions and actions, and the formula language used in conditions and scripts requires careful testing. Stop conditions for replies and opt-outs are where most errors occur, because a missed condition keeps sending to a person who has already responded or withdrawn consent. Ask whether your admin has built and tested BPM processes before, whether there is a staging instance, and who will maintain the process when the campaign changes. Your team can also run the build internally and bring in a partner only for review.

How does a drip campaign handle consent and opt-out?

The campaign process must check consent before each send, and the stop conditions must cover both replies and opt-outs. Consent is a legal and business decision that your organization owns, and DeployOpen does not provide legal advice or compliance certification. In the build, the process should read a consent or marketing-opt-in field before the first email and again before every timed step, then exit when a reply arrives or an unsubscribe is recorded. Confirm with your privacy or legal team which lawful basis applies in each market, what the unsubscribe wording must say, and how withdrawal is recorded. Independent auditors and certification bodies, not DeployOpen, issue any formal assessment of these controls.

What goes wrong most often in drip campaign processes?

The most common failures are duplicate enrollment, missed stop conditions and sending outside intended hours. Duplicate enrollment happens when a lead is captured twice or re-imported, and it starts two processes for the same person. Missed stop conditions occur when a reply is logged on a different record than the one the process watches. Timers can also run late if background jobs are not executing, which depends on the scheduled cron job being configured on the server, as the EspoCRM server configuration docs require. Test with a set of sample leads covering each exit path, and confirm the cron schedule with your platform team before go-live.

Where should the drip campaign data and processes be hosted?

You can run EspoCRM on infrastructure you control or use EspoCRM Cloud, and the choice affects who operates the cron jobs, backups and access controls. The open-source edition can be downloaded and self-hosted for free, according to the EspoCRM pricing page, and it is licensed under AGPL-3.0 according to the espocrm/espocrm repository. Self-hosting means your team or a partner manages the database, PHP version and background jobs. Cloud shifts operation to EspoCRM but still requires you to configure the processes. Ask which option fits your data residency and access rules before the design is fixed.

How DeployOpen scopes and delivers EspoCRM drip campaigns

DeployOpen treats EspoCRM drip email campaigns with BPM as a defined piece of work: one agreed sequence, one set of entry and exit rules, and a written scope before any build starts. We build the process inside your own EspoCRM instance and hand over the models, settings and runbook your team needs to operate it.

How we scope

  • We list the entry points, such as lead capture or target list entry, and agree them in writing before build starts.
  • We document each email, its timer gap, and the reply and opt-out conditions that end a lead's process.
  • Engagements are fixed-scope, so scope, deliverables and timelines are agreed in writing first.

How we build

  • We configure the BPM process on your instance, with one process instance per lead and timer events between emails.
  • We test stop conditions on reply and opt-out using sample leads in a non-production instance before go-live.
  • We check that background jobs run through cron or a scheduled task, since timers depend on them to fire.

How we hand over

  • We document the process model, formula logic, email templates and exit rules so your team can change them safely.
  • We walk your administrators through monitoring the process log and troubleshooting stalled or stopped leads.
  • We confirm consent handling and opt-out rules with your compliance owner, who makes the final call on policy.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after handover.
  • Upgrades to new EspoCRM releases are planned against your workflows and extensions before they are applied.
  • Ask us to confirm which Advanced Pack features your plan includes before we scope the build.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.