Most small businesses run on a thin layer of duct tape called Zapier. A new lead in your CRM fires a webhook. Zapier polls your CRM API every fifteen minutes. Eventually it notices the change, calls your email tool's API, then your calendar's API, then your Slack's API. Every step is an external HTTP call to a separate vendor's database. Every step costs you a task. Every step can fail silently because the source app and the destination app do not actually know each other exists.
Deelo's automation engine works differently. Your CRM, your invoicing, your field service work orders, your patient charts, your calendar, your email -- they all live in the same database. When something happens in one app, every other app knows in under a second because the trigger is a database event, not a polled API call. The engine that runs your workflows runs on the same server as the apps it is automating.
This post is the architecture tour. We will cover what the automation engine actually is, five real workflows we have seen customers build, how the data-locality model differs from API-glue tools like Zapier, the building blocks of a workflow, what makes multi-step automations reliable in production, and where the engine is heading in Q3 2026. By the end you will know exactly what no-code business automation looks like when it is native to your operating system instead of bolted on top.
What Is the Deelo Automation Engine?
The Deelo Automation Engine is a workflow runtime built into the Deelo platform. It listens for events from any of the 53 user apps -- CRM, Invoicing, Helpdesk, Bookings, HR, Inventory, Field Service, Projects, POS, E-commerce, Marketing, Accounting, Expenses, Time Tracker, Practice, Scheduler, and the rest -- and runs multi-step workflows in response.
A workflow is a directed graph of nodes. Every workflow starts with a trigger node (an event from an app, a schedule, a webhook, or a manual run), passes through optional conditions and branching logic, and ends in one or more action nodes that do something inside another app or external system.
Under the hood, the engine has four pieces working together:
- Job Queue -- a MongoDB-backed queue (`deelo_jobs`) with atomic claim semantics, so two workers never run the same step twice. Failed steps retry with exponential backoff. Completed jobs are TTL-cleaned automatically. - Scheduler -- supports cron expressions, fixed intervals, and one-off scheduled runs. The scheduler tick endpoint is protected by a `CRON_SECRET` so only your infrastructure can fire it. - Workflow Engine -- traverses the workflow graph, calls the right node executor for each step, enforces per-node timeouts, and retries individual nodes on transient failure without restarting the whole workflow. - Event Bridge + Webhook Handler -- a wildcard subscriber to the internal EventBus (108+ route files emit through it, with 109+ event types defined) plus an HTTP webhook handler for external systems. Both feed into the same workflow matcher.
Workflows, runs, templates, drip enrollments, and metrics live in a separate database (`deelo_automation`), so heavy automation traffic never slows down your business apps. The engine is on. It is just waiting for a trigger.
Five Real Workflows We've Seen Customers Build
The fastest way to understand a workflow engine is to look at what people build with it. These five are representative of the patterns we see most often. Every one of them runs cross-app, end-to-end, inside Deelo.
1. New CRM Lead → Auto-Assign + Welcome + Calendar Invite
Trigger: a new contact is created in the CRM with status `lead`.
Workflow:
1. Condition node checks the contact's territory field. 2. CRM action node looks up the closest sales rep for that territory using a `find_users` lookup action. 3. CRM action node assigns the lead to that rep (`update_contact` with `ownerId` from step 2). 4. Send email node fires a templated welcome email to the lead, personalized with `{{trigger.data.firstName}}` and `{{nodes.assign.repName}}`. 5. Bookings action node creates a 30-minute calendar invite on the rep's calendar with a Zoom link. 6. Send notification node pings the rep in their Deelo notification tray with a deep link to the new lead.
From lead created to fully assigned and welcomed: under three seconds. Zero manual work.
2. Invoice 7 Days Overdue → Multi-Channel Dunning
Trigger: scheduled cron (`0 9 * * *`, 9am daily) plus an Invoicing app filter for `status = overdue` and `daysOverdue = 7`.
Workflow:
1. Loop node iterates over each matching invoice. 2. Send email node sends a polite reminder with a one-click pay link. 3. CRM action node creates a follow-up task assigned to the account owner. 4. Practice action node (for healthcare customers) flags the patient account in the chart so the front desk sees it at the next visit. 5. Condition node: if the customer has a phone number on file, Send SMS node sends a text reminder too. 6. HTTP request node posts to a Slack channel for the finance team summarizing the day's overdue accounts.
This is dunning that used to require a paid third-party tool. Now it is six nodes and runs every morning automatically.
3. New Work Order Assigned → Field Tech Dispatch
Trigger: Field Service event `workorder.assigned`.
Workflow:
1. Field Service lookup node fetches the technician's details using `get_user`. 2. Send SMS node texts the tech: "New job at {{trigger.data.address}} -- ETA window {{trigger.data.window}}. Open in Deelo: {deep-link}." 3. Bookings action node adds the job to the tech's daily route in the Scheduler app. 4. Inventory action node reserves any required parts via `update_inventory_item`. 5. Send notification node pings dispatch confirming the assignment.
No more "did you see that work order?" phone calls. The assignment, the SMS, the route, and the parts hold are all one trigger.
4. Patient Lab Result Received → Clinical Follow-Up
Trigger: webhook from a lab system, or internal event `practice.lab_result.received`.
Workflow:
1. Condition node checks if the result is flagged abnormal. 2. Send notification node alerts the ordering physician (HIPAA-compliant in-app notification, no PHI in email). 3. AI prompt node drafts a follow-up message to the patient using the assistant, with the result context attached. 4. Bookings action node creates a tentative follow-up appointment slot for the next available physician. 5. Practice action node appends a note to the patient's chart with the lab result and the workflow's run ID for audit.
Because Practice uses Deelo's `EncryptedRepository`, every step that touches PHI is automatically encrypted at rest and audited.
5. Subscription Renewal in 30 Days → Pre-Renewal Motion
Trigger: scheduled cron, runs daily, filters CRM contacts where `renewalDate` is exactly 30 days out.
Workflow:
1. Loop over matching contacts. 2. Send email node sends a personalized renewal email with the customer's account snapshot. 3. CRM action node creates a new opportunity tied to the contact, valued at the existing contract amount, in stage `renewal`. 4. Send notification node alerts the account manager with a deep link to the new opportunity. 5. Marketing action node enrolls the contact in a 4-touch nurture drip (handled by the Drip Campaign Engine, which is itself a thin layer on top of the workflow engine).
Renewals stop being a thing your account managers forget. They become a thing the platform reminds you about while pre-staging the work.
How It's Different From Zapier
Zapier is great. It does its job well. We are not knocking it. But Zapier and the Deelo Automation Engine are solving different problems.
Zapier is API glue. It connects external apps to each other through their public APIs. Each app is a separate vendor with a separate database. Zapier acts as the postal service that carries data between them.
Deelo is a native automation engine. It runs on the same database as the apps it is automating. There is no postal service because there is no border to cross.
This difference shows up in four practical ways.
| Capability | Deelo Automation Engine | API-glue automation tools |
|---|---|---|
| Trigger latency | Sub-second (event-driven) | Often 1–15 minutes (polling-based) |
| Pricing model | Included in your plan | Per-task or per-step pricing |
| Cross-app data access | Direct database reads, no auth dance | Separate API connection per app |
| Error visibility | Run history with full step context inside Deelo | Logs split across vendor + each connected app |
| Idempotency | Built into job claim semantics | Depends on each connected app's API |
| PHI / encrypted data handling | Inherits app-level encryption automatically | Data leaves the source app to be processed |
If your stack is genuinely heterogeneous -- Salesforce on one side, Stripe on another, ZenDesk somewhere else -- a tool like Zapier is the right answer. If most of your operations already live in Deelo, paying a per-task fee to ship data between apps that share a database is paying twice for the same wire.
The Building Blocks
Every workflow is built from a small set of node types. They compose into anything from a two-step welcome email to a fifty-step procurement process.
- Trigger nodes -- the entry point. Choose from app events (e.g. `crm.contact.created`, `invoice.paid`, `workorder.assigned`), scheduled cron, fixed interval, one-off scheduled time, inbound webhook, or manual run. The Trigger node renders a dropdown of valid event names per app, not a free-text field, so misspellings cannot silently break a workflow.
- Condition nodes -- branching logic on any field from any upstream node. Supports equality, range, regex, and presence checks.
- App-action nodes -- 31 app handlers (CRM, Invoicing, Helpdesk, Bookings, HR, Inventory, Field Service, Projects, POS, E-commerce, Marketing, Accounting, Expenses, Time Tracker, Social, Fleet, Rental, Manufacturing, Planning, Events, Wiki, Academy, Survey, eSign, Meetings, Live Chat, Mail, Forms, Messenger, Notes, Docs, Voice). Each handler exposes create/update/delete actions plus `get_*` (lookup by ID) and `find_*` (search by filter, with case-insensitive regex on strings).
- AI-action nodes -- call the Deelo AI Assistant with a prompt that can reference any upstream node's output via template expressions like `{{trigger.data.firstName}}` or `{{nodes.draftEmail.subject}}`. Useful for drafting personalized copy, summarizing long records, or extracting structured data from messy input.
- Communication nodes -- send_email, send_sms, send_notification, http_request. All four respect your team's transactional email settings, SMS provider, and notification preferences.
- Logic nodes -- switch (multi-branch), loop (iterate over arrays), filter (drop items not matching a condition), transform (reshape data between steps), merge (combine parallel branches), delay (wait N seconds, minutes, hours, or days before continuing).
Two pieces tie the nodes together. Template expressions (`{{trigger.data.x}}`, `{{nodes.id.field}}`) let any node reference data from any upstream node, resolved at runtime by the engine. Dynamic action fields mean that when you pick an action like `crm:create_contact`, the configuration form swaps in the right fields automatically -- you do not have to remember the schema.
Setting Up Your First Workflow in 60 Seconds
Open the Automation app from your Deelo desktop. Click "New workflow." Pick a name -- "Welcome new leads" works.
Add a Trigger node. Choose app `CRM`, event `contact.created`. Add a filter: `status equals lead`.
Add a Send email node. Pick a template, or write inline. In the body, type `Hi {{trigger.data.firstName}},` and the engine will substitute the lead's real first name when the workflow runs. Set the recipient to `{{trigger.data.email}}`.
Add a CRM action node. Action: `create_task`. Title: "Follow up with {{trigger.data.firstName}}". Due: 1 day. Owner: the lead's assigned rep.
Click "Activate." That is it. The next contact created in your CRM with status `lead` will fire all three nodes in sequence. You can watch the run live in the run history. Total setup time: under a minute if you know what you want, under five if you are exploring.
Workflow Templates Library
Most teams do not start from zero. Deelo ships a template library covering the workflows that almost every business needs:
- Lead routing -- territory-based, round-robin, or load-balanced assignment.
- Dunning -- 7-day, 14-day, and 30-day overdue invoice escalation across email, SMS, and CRM tasks.
- Customer onboarding -- welcome email + checklist + first-week nurture + 30-day check-in.
- Employee onboarding -- HR record creation, equipment request, training assignment, first-day calendar invites.
- Invoice approval -- multi-step approval routing for invoices above a threshold.
- Appointment reminders -- 24-hour and 2-hour SMS reminders with no-show flagging.
- Renewal motion -- 90-day, 60-day, 30-day pre-renewal touches.
- Win-back -- automatic re-engagement after a customer goes inactive for 90+ days.
Pick a template, swap in your specifics, activate. The templates are starting points, not black boxes -- every node is editable, and every workflow can branch off into your own logic.
What Makes Multi-Step Workflows Reliable
Anyone can write a workflow that runs once when nothing is wrong. The hard part is running tens of thousands of workflows a day across thousands of teams without losing data, double-charging customers, or sending the same email twice. That reliability comes from how the engine handles failure.
- Atomic job claim. Every step is enqueued as a job in `deelo_jobs`. Workers claim jobs with an atomic MongoDB update, so two workers cannot accidentally run the same step. If a worker crashes mid-step, the job times out and another worker picks it up.
- Per-node retry with backoff. When a node fails on a transient error -- a network blip, a rate limit, a temporary 5xx -- only that node retries, with exponential backoff. The rest of the workflow does not restart. After the configured retry budget, the node is marked failed and the run continues down a `on_error` branch if you defined one, or stops cleanly.
- Timeout enforcement. Every node has a per-node timeout. A slow third-party API cannot hang an entire workflow indefinitely; it gets cancelled and either retried or routed to an error branch.
- Idempotency keys. Communication nodes (send_email, send_sms) and external action nodes use idempotency keys derived from the run ID and node ID, so a retried node does not send a duplicate message.
- Audit trail. Every run, every node, every input and output is recorded in `deelo_automation.runs`. You can replay a failed workflow, inspect the exact data the engine saw, and trace why a particular step ran or did not run -- all from inside Deelo.
- Schedule safety. The Scheduler endpoint that fires cron and interval triggers is protected by a `CRON_SECRET`. Only your infrastructure can advance scheduled jobs; an attacker cannot replay your cron from outside.
Where the Automation Engine Is Going (Q3 2026)
The current engine is the foundation. Three things land on top of it next.
- Agent-driven workflows. Today, a workflow runs because a deterministic event matched a deterministic trigger. Next, the AI Assistant will be able to *kick off a workflow based on inferred intent*. Tell the assistant "a high-value lead just came in from our enterprise list" and it will pick the right workflow, fill in the missing context, and run it -- with the run still recorded in the same audit trail. The engine becomes the assistant's hands.
- Conditional ML scoring as a node type. A first-class node that scores a lead, an opportunity, a churn risk, or any record using a model trained on your team's data. The score becomes available to downstream condition nodes the same way any other field is. No data science team required.
- Cross-team workflow templates marketplace. Teams already share workflow patterns informally. We are building a marketplace where verified templates -- vetted for safety, parameterized for reuse, and tagged by industry -- can be installed in one click. Think of it as the App Store for operations.
All three sit on the same engine described above. The job queue, the scheduler, the graph traversal, the retry semantics, the audit trail -- nothing changes underneath. The new pieces just plug in as new node types and new trigger sources.
Try Deelo's Automation Engine
53 apps that share a database, a workflow engine that runs on top of all of them, and a template library so you do not start from zero. Free to start, no per-task fees.
Start Free — No Credit CardNo-Code Business Automation FAQ
- What is workflow automation?
- Workflow automation is software that runs a sequence of tasks automatically in response to a trigger -- a new lead, an overdue invoice, a scheduled time, a webhook from another system. A no-code workflow engine lets non-engineers build those sequences visually by chaining together trigger, condition, and action nodes instead of writing code.
- How is Deelo's automation engine different from Zapier?
- Zapier connects external apps through their public APIs and is priced per task. Deelo's engine runs natively on the same database as the 53 apps it automates, so triggers fire in under a second instead of being polled, there are no per-task fees, and cross-app data access does not require a separate API connection per app. Zapier is the right tool when your stack is heterogeneous; Deelo's engine is the right tool when most of your operations already live in Deelo.
- Does no-code business automation cost extra in Deelo?
- The Automation app is included in your Deelo plan. There is no per-task pricing and no separate automation seat. You pay per Deelo seat (Free, Starter $19/seat/mo, Business $39, Enterprise $69) and the workflow engine is on for every team.
- Can a workflow trigger across different apps?
- Yes -- this is the core design. A trigger from one app (e.g. CRM `contact.created`) can fire actions in any other app (Invoicing, Bookings, Field Service, Practice, Marketing, etc.) because all 53 apps emit through a single internal EventBus. There are 109+ event types defined and 31 app action handlers covering create, update, delete, and lookup operations.
- Can the AI Assistant be part of a workflow?
- Yes. The AI-action node calls the Deelo AI Assistant with a prompt that can reference any upstream node's output (e.g. `{{trigger.data.firstName}}`). It is useful for drafting personalized emails, summarizing long records, classifying inbound messages, or extracting structured data from free-text input. Soon, the assistant will also be able to kick off workflows on its own based on inferred intent.
- Is the automation engine better for solo founders or teams?
- Both, for different reasons. Solo founders use it to replace the manual work of running multiple tools -- the engine becomes the back office they cannot afford to hire. Teams use it to enforce process consistency -- every lead is routed the same way, every invoice escalates the same way, every patient follow-up uses the same audit trail. The template library helps both groups skip blank-canvas paralysis.
- How long does it take to set up a useful workflow?
- Under a minute for a simple two-step workflow (e.g. new lead → welcome email). Five to fifteen minutes for a typical multi-step business workflow once you know which nodes you want. Templates cut that time further -- pick a lead-routing or dunning template, swap in your specifics, activate. Most teams have their first three workflows running on the same day they turn on the Automation app.
Related pages
Explore More
Related Articles
Best Personal Injury Case Management Software in 2026
A head-to-head comparison of the top personal injury case management platforms in 2026. Lien tracking, medical record management, demand letters, contingency math, and settlement distribution compared across Clio, MyCase, Filevine, CASEpeer, PracticePanther, Smokeball, and Deelo.
12 min read
How-ToHow to Start a Plastic Surgery Practice: Complete 2026 Guide
A step-by-step guide to launching a plastic surgery practice in 2026. Licensing, credentialing, facility setup, liability insurance, patient pipeline, operations software, and first-year revenue targets.
14 min read
Best OfBest Podcast Management Software in 2026
The top podcast management platforms compared for 2026. Descript, Captivate, Buzzsprout, Transistor, Riverside, and Deelo — features, pricing, and the angle each takes for professional podcasters.
11 min read
ComparisonDeelo vs ServiceTitan: The Honest 2026 Comparison
A genuinely fair side-by-side comparison of Deelo and ServiceTitan for field service businesses. Pricing, features, strengths, weaknesses, and who each platform is really built for.
12 min read