Marketing

Workflows

Pick what starts a workflow and lay out its steps on a canvas. Each contact who sets it off moves through your emails, texts, waits, branches and team tasks.

A workflow does your follow-up for you. You pick what starts it, like a booking or a new row in a group, and lay out the steps after it on a canvas. Each contact who sets it off moves through those steps on their own clock. Northside Pottery runs one for private wheel lessons: a text the day before each lesson, then a thank-you email with a link to book the next one, or a task to call the student if they didn't show.

One contact's way through a workflow is called a run. Find workflows in Marketing → Workflows.

Create a workflow

Go to Marketing → Workflows and select New workflow.

Give it a Name, like "Lesson follow-up".

Under What starts it, pick a trigger. For Booking made, choose the Booking page, or Any booking page. For Added to a group or Registered for an event, pick the Group or Event. See Triggers.

Select Create workflow. The editor opens with the trigger card on the canvas.

Select the + under the trigger card and pick the first step, or use Add step at the top right of the canvas. Select a card to fill it in on the panel that opens over the right of the canvas.

Add the rest of the steps the same way, each under the one before.

Select Publish. The workflow is now Active, and everyone who sets off the trigger from then on starts a run.

The draft saves as you work. Next to the name, you'll see Saved, Saving… or Couldn't save. A workflow needs a name before it saves.

Work on the canvas

  • Each card has one or more ways out along its bottom edge. When a step has a choice to make, its ways out are labelled, like Yes and No on a branch.
  • A way out with nothing after it shows a +. Select it to add the next step there. A run that leaves by a way out with nothing after it ends.
  • To link a way out to a card that's already on the canvas, drag from its dot onto that card. To remove a link, select it and select the cross on it.
  • To delete a step, select its card and press Delete, or use the trash icon at the top of its panel.
  • Name a step at the top of its panel, like "Day-before text". The name shows on the card and in the runs.
  • Tidy up, at the top right, lays the cards out again from the trigger down.

The trigger card's panel also holds the workflow's stop rules.

Triggers

TriggerStarts a run when
Booking madeSomeone books on the booking page you chose, or on any of them if you chose Any booking page.
Added to a groupA row is added to the group, however it got there, including from a form on your website.
Registered for an eventSomeone's registration for the event goes through, on any date of the event.
Message receivedA contact sends you a message by the channel you chose: Text, Email or Chat, or Any channel.
Manually or via APIYou start it for contacts you pick, or your website does through the API. See Start people manually and Start from your website.

Each booking, group row and registration starts its own run. With the other triggers, a contact who is already going through the workflow isn't started again until their run ends.

You can change the trigger on the trigger card's panel. Once the workflow is published, the new trigger takes over when you publish again.

Steps

StepWhat it doesWays out
EmailSends an email to the contact, or to someone else about them.One
Text messageSends a text from your organization's number.One
WaitHolds the run for a time, until a time around the booking or the event, or until the contact acts.Depends on the kind of wait
BranchChecks rules and sends the run one way or the other.Yes, No
Notify teamTells members about the contact by email and in their notification feed.One
TaskGives a member a reminder about the contact, and holds the run until it's done.Done, and Not done if you set a time
Add to groupAdds the contact to a group as a new row.One
Another workflowStarts the contact in another workflow too.One
WebhookTells your own system that someone got to this step.One

Email

Under To, choose The contact, or Someone else and pick a contact, like a partner or a call center. An email to someone else is about the run's contact and can use their details.

Under Send from, each email step picks its own address: your Lahuta address, or a mailbox you've connected in Email settings. With no mailbox connected, it shows your Lahuta address. Write the Subject and the letter. Type / in either to insert a personal value.

An email to the contact gets an unsubscribe line at the bottom unless you place {{lahuta:unsubscribe_url}} yourself. The step is skipped, and the run moves on, if the contact has no email address, unsubscribed or bounced. An email to someone else is only skipped if their address bounced.

If the mailbox a step sends from needs reconnecting, the step waits and tries again every three hours. After three days it's skipped and the run moves on.

Text message

Write the Message. Type / to insert a personal value. As in a text campaign, a new text starts with your organization's name and "Reply STOP to opt out", and you can reword both. If it no longer says how to stop, "Reply STOP to opt out" is added at the end, and the counter under the message includes it.

Each link in the message goes out as a short link of the contact's own, like lahuta.org/l/x7Kq2mPa, so a wait, a branch or a stop rule can tell when they tap it. The short link opens the page you wrote.

Text steps need your organization's own texting number. Until it's approved, Text message is greyed out with "Needs an approved number for this organization." If a run reaches a text step while the number isn't ready, the step waits and tries again every three hours, and after three days it's skipped. A text is skipped if the contact has no phone number, has replied STOP, or hasn't agreed to your marketing texts.

Wait

Choose the kind of wait under Wait.

KindHolds the runWays out
For a timeFor the time you set under Wait for, from 1 minute to 365 days.One
Around the bookingUntil a time before or after the booking starts. Set How long, up to 90 days, then Before it starts or After it starts.On time, Already passed
Around the eventUntil a time before or after the event starts, on the date they registered for. Set How long and the side, as for a booking.On time, Already passed
Until they…Until something you pick happens, or until the time under Give up after runs out.What happened, like Messaged, and Timed out
HoursUntil the clock reads between the two times you set, on the days you pick, in the time zone you choose.One

Around the booking is only offered in workflows started by Booking made. If the booking moves, the wait moves with it. Someone who reaches the wait after its time has gone, like a day-before reminder for a booking made this morning, goes down Already passed, or carries straight on if nothing is linked there.

Around the event takes the place of Around the booking in workflows started by Registered for an event. Use it for anything that should happen a set time before the date, like a reminder two days out, rather than as soon as someone registers. If the date moves, the wait moves with it. Someone who registers after the wait's time has gone goes down Already passed, or carries straight on if nothing is linked there. If their registration or the date is cancelled, the run ends at the wait instead of going on.

Until they… waits for one of the things in What a workflow listens for. Only what happens after the run reaches the wait counts. If it happens, the run leaves by the way out named after it, like Messaged or Booked. If Give up after runs out first, it leaves by Timed out.

Hours keeps texts and emails from going out at night. Put it just before them. A run that gets there inside the hours goes straight on. Anyone else waits until the hours next open, so a follow-up text set off at 2 AM goes out at 8 AM instead. It starts as 8 AM to 8 PM every day, in your browser's time zone. Change the times, turn days on and off, and pick another zone if your customers are elsewhere. A run held past the hours, like one in a paused workflow, waits for them to open again before it goes on.

Branch

A branch checks its rules when a run gets to it. Under Go down Yes when, choose All of these hold or Any of them holds. Select Add a rule for each check, up to 10. The two buttons on each rule let you turn it around, like Happened or Didn't happen.

RuleChecks whether
Something happened during this runOne of the things in What a workflow listens for happened since the run started. Anything before the run started doesn't count.
Booking statusThe booking that started the run is Booked, Completed, No-show or Cancelled. Only in workflows started by Booking made.
SourceThe contact's source is what you type, like facebook-ads. Capital letters don't matter.
Email addressThey have an email address.
Phone numberThey have a phone number.

Under the rules, the panel spells out the condition in a sentence.

Notify team

Under Who hears about it, choose Everyone or Pick members. Write a Subject and a Message, using Personalize for the contact's details. Each member gets an email with a link to the contact, and the notice lands in their notification feed. They can turn off the email under Workflow notices in Notifications.

Task

A task is a reminder on the contact for one member.

  • Task is what to do, like "Call to rebook the lesson". Note is optional.
  • Assigned to is the member who does it.
  • Due counts from when the run gets to the step, up to 90 days.

The run waits until someone marks the reminder done, on CRM → Reminders or the contact's panel, then leaves by Done. Turn on Move on if it isn't done and set Give up after if the run shouldn't wait forever. If the task is still open after that long, the run goes down Not done. If someone deletes the reminder, the run ends.

Add to group

Under Add to, pick a group. The contact goes into it as a new row. A workflow started by rows added to that group starts for them too.

Another workflow

Under Start, pick another workflow. The contact starts that workflow too, and this run carries on. The step is skipped if the other workflow isn't active, or if the contact is already going through it.

Webhook

Use a webhook when your own system or a developer you work with needs to act on something, like setting up an account for each person who registers for a class.

Under URL, enter the address your system gave you. It must start with https://. When a run gets to the step, Lahuta sends a POST to that address with the IDs of the run and of what started it, like the registration. It doesn't send the person's details. Your system reads those through the Org API with its own key.

Ask for an address with a secret in it, like https://example.com/hooks/7f3k9q2m, so nobody else can call it. The card on the canvas shows only the address's domain.

If the call fails, the step tries again, at first after a minute and then less often. After a day it's skipped and the run moves on.

What a workflow listens for

A wait's Until they…, a branch's Something happened during this run rule, and stop rules all use the same list. Each choice asks you what it's about, so it's never unclear which booking, email or text counts.

ChoiceA wait leaves byYou also pick
They send a messageMessagedChannel: Any channel, Text, Email or Chat.
They click a link in an email or textClickedWhich email or text. A wait or a branch lists the email and text steps before it. A stop rule lists every one.
They make a bookingBookedBooking page, or Any booking page.
Their booking is cancelledCancelledWhich booking.
They attend their bookingAttendedWhich booking. It counts when you select Mark completed on it.
They miss their bookingNo-showWhich booking. It counts when you select Mark no-show on it.
They're added to a groupAddedGroup.
They register for an eventRegisteredEvent.

Which booking is either The booking that started this workflow, or Their booking on… and a booking page, or Any booking page. The first is only offered in workflows started by Booking made, where it's picked for you.

A click only counts in the email or text that step sent to this contact during this run. Link previews that a chat app draws, and link scanners, don't count as clicks.

Stop rules

On the trigger card's panel, under Stop sending to someone once…, select Add a stop rule and pick from What a workflow listens for, up to 5 rules. As soon as one happens, the contact's run ends wherever they are in the workflow.

Use them for follow-up that has done its job, like stopping a series of "book a call" emails once they make a booking on that page.

Personal values

Emails, texts, notices and tasks can include values that fill in for each contact, like {{lahuta:first_name}}. Type / in a subject, letter, message or task to insert one. The contact's details work as they do in campaigns, including {{lahuta:source}}, where they came from. Some triggers add values of their own:

TriggerAdds
Booking made{{lahuta:booking_date}} and {{lahuta:booking_time}}, the day and the time it starts. {{lahuta:booking_type}}, the booking page's title. {{lahuta:booking_link}}, where they can reschedule or cancel. {{lahuta:organization_name}}. For one booking page rather than Any booking page, the answer to each of its questions, listed as the question.
Registered for an event{{lahuta:attendee_name}}, the name on their ticket. {{lahuta:event_name}}, {{lahuta:event_date}}, {{lahuta:event_time}} and {{lahuta:event_location}}. {{lahuta:event_link}}, a link to the event page. {{lahuta:meeting_link}}, for an online event. {{lahuta:organization_name}}. The answer to each of the event's registration questions, listed as the question.
Added to a groupThe group's columns, except Files columns.

{{lahuta:unsubscribe_url}} only works in emails. When you publish, Lahuta checks that the trigger can supply every value the steps use, and names any it can't.

Publish and versions

Nothing you change reaches anyone until you publish. Publish first checks the draft:

  • The trigger leads to a first step, and every step is connected to it.
  • Every step has what it needs, like an email's subject and letter, a branch's rules or a task's member.
  • Any loop passes through a Wait or a Task, so nobody goes round without stopping. An Hours wait doesn't count, since it lets runs straight through inside its hours.
  • Booking waits and rules are only used in workflows started by Booking made.
  • Around the event waits are only used in workflows started by Registered for an event.
  • Every personal value is one the trigger can supply.

While something is missing, Publish is greyed out and a panel at the top left of the canvas counts what's left, like "2 things to fix before publishing". Open it and select a problem to go to its step. Cards with a problem are marked too.

Each publish saves the workflow as a new version. People already on a run finish on the version they started on. New runs use the newest version. After the first publish, the button reads Publish changes, and Unpublished changes shows next to the status until you publish again.

Statuses

StatusWhat it meansWhat you can do
DraftNever published. Nothing starts.Publish, Archive or Delete.
ActiveThe trigger starts runs and people move through the steps.Pause, Archive, or Publish changes.
PausedNothing starts or moves. Everyone stays where they are.Resume or Archive.
ArchivedFinished for good. Every run still going ended where it was.Duplicate or Delete.

When you resume, steps that fell due while paused go right away. Someone waiting for something to happen, like a reply, still gets past the wait if it happens while paused, so it isn't missed; the step after it runs once you resume. Publishing a paused workflow keeps it paused, and the new version is used once you resume. An archived workflow can't be edited or run again. Duplicate it to build on it.

Marketing → Workflows has All, Active, Drafts, Paused and Archived tabs. Each row shows how many runs are going, the published version, like v3, and when it was last changed. Its ⋮ menu has Open and Duplicate, plus the moves its status allows. In the editor, the same moves sit in the top bar and its ⋯ menu.

Duplicate makes a draft copy with "(copy)" after the name. Delete removes a draft or archived workflow, its steps and its run history, and can't be undone.

Start people manually

A workflow with the Manually or via API trigger starts for the contacts you pick.

Open the workflow. It has to be Active.

Select Start for contacts, then Choose contacts, and pick the people. You can start up to 500 at a time.

Select the start button, like Start for 12. Each person starts at the first step of the published version. Anyone already going through the workflow stays where they are.

Start from your website

Your website, or another tool you use, can start people in a Manually or via API workflow through the Org API. Use it when leads arrive somewhere else, like a price calculator or a quote form on your site. Northside Pottery's commission quote calculator starts everyone who asks for a quote in its "Commission follow-up" workflow, so the team hears about it straight away.

Create the workflow with the Manually or via API trigger, add the steps and publish it. The API only starts people while it's Active.

In the editor, open the ⋯ menu and select Copy workflow ID.

Give the ID to whoever builds your website. Their code sends it with each person's details. See Start a workflow.

Each call saves the person as a contact, or finds the one you already have by email (or by phone when there's no email), before starting them. It can give the contact a source, like "quote-calculator", which a branch can check. A contact keeps the first source it was given. Someone already going through the workflow isn't started again.

Follow the runs

Open a workflow's ⋯ menu and select View runs, or select View runs in its menu on the Workflows list. Each row shows the Contact, the run's Status, its Current step, what it's Waiting for and when it Started. Select a contact's name to open their contact panel.

Filter by status with All, Running, Waiting, Completed, Cancelled and Failed, each with a count. The Step menu narrows the list to runs on one step. In the editor, a card with people on it right now shows a badge like "3 here". Select it to see those runs.

StatusWhat it means
RunningMoving from one step to the next.
WaitingHeld on a wait or a task.
CompletedReached the end.
CancelledStopped before the end.
FailedStopped because it went round a loop too often.

A run that stopped before the end shows why instead: Stopped by a stop rule for a stop rule, Cancelled by hand, Workflow archived, Contact archived, Task deleted, Registration cancelled, Date cancelled or Stopped looping.

Select a run to see its timeline. It lists each step the run went through, what came of it, like Sent, Skipped, Yes or Timed out, and when. A skipped step says why, such as "No phone number". An email step also shows when it was opened and clicked, and a text step when a link in it was last tapped.

To stop someone's run, open it and select Cancel run, then Cancel run again to confirm. Nothing more goes out to them from that run.

On this page