A workflow is an automation you draw on a canvas. Something happens — someone donates, signs up, clicks a link, has a birthday — and CamBuildr takes over from there: send an email, wait three days, check whether they opened it, tag them, send a different email, tell your CRM about it.
You build it once. It then runs for every single person who qualifies, forever, without anyone touching it.
You do not have to build it yourself — Cora can
Describe the automation in plain language and Cora, the AI assistant built into CamBuildr, builds it on the canvas for you. For example: "When someone donates for the first time, send the thank-you mail immediately, wait 3 days, then send the what your gift does mail."
Ask her in the side panel inside the workflow editor, or type your brief into the Customize with AI box on the Workflows page when it is enabled for your account.
She reads your real tags, emails, campaigns and fields first, so she can only reference things that exist — and every change is shown as a validated preview you approve before anything is saved.
Cora needs AI switched on: see Setting up AI in CamBuildr.
Where to find workflows
In the left sidebar under Database > Workflows. The overview shows your pinned and recent workflows; All Workflows gives you the full, searchable list with an active / inactive filter.
Creating one gives you an empty, switched-off workflow. Nothing runs until you have set a start condition, drawn the steps and switched it on.
The four building blocks
Every workflow is made of four kinds of step, connected by arrows.
Step | What it does |
Start | The door in. People enter the workflow when this action happens. Exactly one per workflow. |
Action | Does something — sends a mail, adds a tag, updates a field, calls a webhook. |
Condition | Splits the path in two: a yes branch and a no branch. |
Wait | Pauses the person here — for a length of time, or until a specific date. |
Only a Condition may split into two paths. Every other step continues to exactly one next step. When a step has nothing after it, the person is simply finished.
1. The start: who enters, and when
Click the Start step and pick the action that lets people in. This is the same catalogue you already know from automated emails, so nearly anything CamBuildr records about a person can open the door:
Signed up, was created, was imported
Donated, purchased something, progressed towards a goal
Opened or clicked an email, or did not respond to one
Submitted a survey, RSVP'd to an event, submitted a story or support statement
Subscribed, unsubscribed, was blocked, confirmed a double opt-in
Has a birthday or an anniversary
Joined or left a group, was recruited by someone
A Stripe event, or an action your own systems send in through the API
Then narrow it down. Depending on the action you can restrict the start to a specific source (this landing page, this email, this survey), a specific detail, particular products, and a value range — so "donated between 100 and 500 €" is a start condition, not something you have to check afterwards.
Start from other automations. This switch is off by default, and that is deliberate: it stops one automation from setting off another in a chain nobody intended. Turn it on only when you actually want actions performed by another automation to open this door too — not just things people do themselves.
2. Actions: what the workflow can do
Action | What it does |
Send email | Sends an automated email. You can create the email from inside the step. |
Add or remove a tag | Attaches or detaches any of your tags. |
Add to or remove from a campaign | Moves the person in or out of a campaign. |
Update person data | Writes a value into a core field or one of your custom fields. |
Update subscription / block state | Subscribe, unsubscribe, block or unblock the person. |
Add an action to the person | Records an action on their timeline — useful as a marker other audiences and automations can filter on. |
Call a webhook | Sends the data to another system — your CRM, a Zapier/Make scenario, your own backend. |
Delete the person | Permanently deletes the person and all their data. Needs CamBuildr approval — see below. |
Emails inside a workflow
You do not have to prepare the emails somewhere else first. On a Send email step, click Create automated email and you go straight into the normal email editor, with a banner reminding you which workflow you are building for. Save it and you land back on the canvas with the mail already selected.
An email used this way is owned by the workflow: it has no sending condition of its own, and it switches on and off together with the workflow. That is what stops the classic double-send, where a mail fires both on its own trigger and from an automation. For standalone automated emails that fire on their own trigger, see Email Automation Basics.
Tags that are consents
If you attach a tag that represents a consent requiring double opt-in, CamBuildr will tell you so on the step. A workflow cannot give consent on somebody's behalf. Everyone who does not already hold that consent gets a confirmation email instead, and the tag is only added once they click the link in it.
3. Conditions: sending people down different paths
A Condition asks a question about the person and splits the path in two. You build the question in exactly the same rule builder you use for target audiences — everything you can filter an audience on, you can branch on here: tags, donations, past emails, survey answers, custom fields, where they came from.
Each condition has a yes branch and a no branch, and you can connect one next step to each. You do not have to use both. Leave a branch unconnected and the run simply ends there — that is the normal way of saying "and if not, do nothing".
Acquisition source is available here too, so you can branch on which ad, newsletter or post brought the person in — see Tracking campaign sources with UTM parameters.
4. Waiting
A Wait step parks the person until it is time to continue. Two modes:
A duration — minutes, hours or days from when they reach the step. "Wait 3 days, then send the follow-up."
Until a date — a fixed moment. "Everyone waits here until 1 March, then continues."
Waits are spread out over a few minutes rather than firing everyone at the same second, so a thousand people leaving a wait step do not all get an email in the same instant.
Re-enrollment: once, or every time
Each workflow has a re-enrollment setting:
Once per person (the default) — someone can go through this workflow exactly once, ever. Right for welcome series and first-donation thank-yous.
Every time — someone can go through it again after they have finished. Right for "every time someone donates" or "every time someone RSVPs".
Even on Every time, a person is never in the same workflow twice at once. If they are still somewhere in the middle of a run, a new trigger does not start a second one.
Workflows inside a campaign
A workflow can belong to a campaign. When it does, it only lets people in while that campaign is live — before the start date, after the end date, or while the campaign is still a draft or already archived, the workflow enrols nobody, even if it is switched on. The workflow's page tells you plainly when this is why nothing is happening, with a link straight to the campaign.
People already inside the workflow are not thrown out; they finish their run as normal.
This choice is permanent. A workflow keeps the first campaign it is added to, so pick deliberately.
Calling other systems (webhooks)
The Call a webhook action pushes data out of CamBuildr at exactly the right moment in the journey — into your CRM, a Zapier or Make scenario, or your own application.
The address must be an https address on a publicly reachable host.
You choose the method (POST, PUT or PATCH) and build the body field by field. Field values can contain placeholders, so you can send the person's email, name, the donation amount, and details of the action that started the run.
You can add your own headers, including credentials. Mark a header as a secret and it is stored encrypted and never shown again.
Every call carries an idempotency key that stays the same across retries, so the receiving system can recognise a repeat and not process it twice.
You can test before you go live. Send test request fires one real request using the step's current settings — saved or not — filled with sample data and your own contact record, and shows you both what was sent and what came back. Copy example request gives you a ready-to-run command to hand to whoever maintains the receiving system. Both are marked with a special header so the other side can tell a test apart from the real thing.
Placeholders
Wherever you can type a value, the placeholder picker shows you what is available: the person's own fields, plus details about this particular run — the workflow's name, the action that started it, its source and value, and the moment the step happened. Useful for webhooks and for writing meaningful values into person fields.
Switching it on and watching it work
The editor checks your work as you go and lists anything unfinished — a step with no action type chosen, a tag not selected, a step that branches when it should not. You cannot save a workflow that could not run.
Once saved, switch the workflow on from its page. From then on the workflow's page shows you:
The flow map — a read-only picture of the automation, with zoom and fullscreen.
Currently enrolled — who is inside the workflow right now, and since when.
Completed — who has been through it.
Each person carries a status: Active (moving through the steps), Waiting (parked on a wait step), Completed, Exited (left early) or Errored (a step could not be completed).
Good to know
Editing a live workflow is safe. Every save publishes a new version, and people already running continue on the version they started on. Your change applies to everyone who enters from now on — you will not strand someone halfway through a series that no longer exists.
Deleting people is deliberately hard. A workflow containing the Delete the person action can only be switched on by a CamBuildr admin. You can request activation from the workflow and our team will review it and switch it on. This applies whether the action was there when you activated it or added afterwards.
Nothing runs by accident. A workflow does not enrol anyone until it has a start condition, a valid saved graph, and is switched on — and, if it belongs to a campaign, until that campaign is live.
Permissions apply. Viewing, editing and creating workflows are separate rights, so you can let people see what is running without letting them change it.
A few things to build
Welcome series — starts on signup from a specific landing page. Tag, wait a day, send mail one, wait three days, condition on "opened mail one": yes goes to the deeper story, no gets a shorter reminder.
First-donation thank-you — starts on a donation, once per person. Immediate thank-you, wait a week, then the "here is what your gift did" mail.
Lapsed supporter win-back — starts on a marker action, condition on "has not donated in 12 months", then a two-mail sequence with a wait in between.
Event follow-up — starts on an RSVP, waits until the day after the event, then splits: attendees get a thank-you and a survey, no-shows get the recording.
Keep your CRM in sync — starts on a donation above a threshold and calls a webhook so your fundraising team hears about a major gift the same minute it arrives.
Any of these is one sentence to Cora away.
Related articles
Email Automation Basics — single automated emails that fire on their own trigger
Setting up AI in CamBuildr — switching AI on so Cora can build workflows for you
Using Cora, the AI assistant in CamBuildr — the basics and how to write good prompts
What Cora can do — the full feature guide — everything Cora can build for you, workflows included
