Email

Email automations

A welcome series, a thank-you after a booking, a note when a tag lands: emails that send themselves.

Two colleagues working through a plan together
Email

Recommended automations for your business (top of Email → Automations): presets picked from what the workspace has connected — a Shopify store brings abandoned checkout, browsed a product, a thank-you split by first-time or repeat buyer and win-back; doTask bookings bring after-a-booking and time-for-your-next-visit; events your own system sends bring the matching reminder; everyone gets the welcome series. Anything you already run is left out. Each card draws the automation step by step: the arrows step through its emails, + and − zoom. Use this automation opens it in the editor with your logo and colours; nothing runs until you switch it on. The cross hides a card for you. With a business profile, your industry’s presets come first, even before you have bookings: three are written for one industry each and start on days since the last visit — Check-up recall after six months (clinics; a reminder only, it says it is not medical advice), Missed you at training after two weeks (fitness and coaching), Time for the next service after six months (home services). A birthday offer is not offered yet: there is no birthday start for an automation.

An automation starts when something happens to a contact — they subscribe, a tag is added, they first appear with an email address, their booking is marked done, or, with a Shopify store connected, they place an order, start a checkout, look at a product, or their last order turns a number of days old — and then runs steps in order: send an email (designed like a newsletter), wait, an “if” (did they open or click the previous one, do they have a tag, are they still subscribed, have they ordered since entering, how many orders have they placed) that carries on, skips the next step or leaves, and add or remove a tag.

Two ways to test something. “If…” stays on the one line: it carries on, skips the next step, or leaves. “Split into two paths” branches properly — each answer gets its own chain of steps, drawn as two lanes under the split, and when a lane runs out the contact carries on at the step under the split, so the paths always come back together. An empty lane means “do nothing and carry on”. Splits nest three deep; anything more is a flow nobody can read. The presets “After an order, split by first-time or repeat”, “Time to reorder” and “Sunset the unengaged” are the shape.

More ready-made automations: abandoned checkout, browsed a product, after an order, win back a lapsed customer, after an order split by first-time or repeat, back in stock, price drop, time to reorder, and sunset the unengaged (one honest email asking whether to keep writing, then a dormant tag on whoever does not answer). Back in stock and price drop start from an event your store or your own system sends — product.back_in_stock and product.price_drop with the product, price and link in the event’s fields.

Your own system: if bookings, sales or visits live in software you built, it sends them with one call (Settings → Developers → dotaskAPI: POST /v1/api/events) and the trigger “an event from your own system” starts an automation for every one, with the event’s fields as {{data.service}}, {{data.branch}} and so on. The condition “the same event has happened again since entering” is how a rebook reminder stands down when they already came back. The preset “After a visit (your own booking system)” is the whole pattern.

A shop that is not on Shopify, or bookings made in software you built: the same one call (POST /v1/api/events) with the store’s own names — checkout.started, order.placed, product.viewed — records exactly what the Shopify webhooks would, so the abandoned-checkout, after-an-order, win-back and browse automations work unchanged, with the cart, the order number and revenue credit. For reminders, send booking.created with a starts_at time: the preset “Booking reminder (your own booking system)” waits until 24 hours before it, then 2 hours before, and leaves if booking.canceled arrives with the same ref. Any Wait step can wait until a time before a field of the event; any condition can check for another event with the same reference. Settings → Developers → dotaskAPI shows the exact calls.

Store triggers run once per event — every order, every checkout — and their emails can use {{order_number}}, {{order_total}}, {{checkout_url}}, {{product_name}} and {{product_url}}, plus the Cart items block, which shows what that person left in the checkout or bought. The abandoned-checkout preset waits an hour, leaves if the order came in, and otherwise sends the cart with a link back to the checkout. Orders and checkouts reach us the moment they happen; product views need the widget on the store and a visitor whose email is known.

  1. Customers → Automations → a preset (welcome series, after a booking, new contact, when a tag is added) or New automation.
  2. Pick what starts it. Add steps with the + between cards; open a step to edit it. An email step opens the designer; Send me a test works there.
  3. Save creates it; from then on a draft or paused automation saves itself a moment after every change (“Saved just now” at the top). Switch on when the list is complete: contacts who qualify from that moment enter, once each, and the first pass runs within fifteen minutes (Run now does it at once). While it is on, changes wait for Save, so nobody inside meets a half-edited step.
  4. Each email step shows sent, opened and clicked, with a per-person list; Recent runs shows where every contact is.
  • Nobody from before the switch-on enters; old subscribers get a newsletter, not the welcome, and a customer whose last order was already sixty days old does not get the win-back.
  • Every email step checks consent first: an unsubscribed contact’s run ends there.
  • Pause stops new entries; running contacts wait where they are and continue when it is switched on again. Editing an automation that is on changes the steps for everyone still inside it.

Visits done in doTask start automations too. When a sale completes at Checkout for a known customer, or a booking is marked completed, doTask records the event visit.completed — once per visit — and the trigger “an event from your own system” with that name starts from it, with {{data.service}}, {{data.services}}, {{data.number}} (the receipt) and {{data.total}} filled in. The preset “Ask for a Google review after a visit” is built on it: three hours on, one email with a button to your Google review form ({{google_review_url}}, set under Customers → Reviews), once per customer. It will not switch on until the Google review link is set. Visits rung at Checkout also count for “Days since their last visit”, so a salon whose history is receipts rather than bookings gets the rebook nudge too.

Your customers’ own moments start automations too, written by doTask once each: contact.birthday at 9am on the day in your time zone (from the Birthday field on the contact, once a year), package.low when a package bought at Checkout is down to its last two sessions, package.expiring 14 days before a package with sessions left expires, membership.started, membership.renewing (3 days before a membership renews), membership.past_due (its period invoice is unpaid after the due date), membership.expiring (14 days before a planned end or the end of the minimum term) and membership.frozen, and booking.created and booking.cancelled for bookings made in doTask. Presets: Happy birthday (with an offer code you can keep or take out), Package running low, Welcome to your membership, Membership renews soon, Payment overdue on your membership, and Before they arrive (two days before a stay or a course, not sent if the booking was cancelled). form.missing is written when a booking made in doTask needs a form the client has not signed (Customers → Forms and waivers): with an automation on it switched on, such as the preset Please complete your form, doTask makes the form link for that booking ({{data.form_url}}) and the email carries it; the form then shows as sent on the client’s Forms tab. Nothing is sent on WhatsApp: these are emails, and customers with no email are skipped.

Invoices start automations too: doTask records invoice.sent, invoice.viewed, invoice.due_soon (three days before the due date), invoice.overdue (the day after it), invoice.paid and invoice.voided, once per invoice, with the invoice’s number, amount, due date, page and PDF as {{data.number}}, {{data.amount_due}}, {{data.due_date}}, {{data.pay_url}} and {{data.pdf_url}}. Four presets use them — a reminder before the due date, an overdue follow-up, a note when an invoice has not been opened, and a thank-you after payment — and each one that chases a payment leaves the moment the invoice is paid or voided (“an event named invoice.paid arrived for the same invoice”). Sales → Invoices recommends them; the help article on invoices has the details.

Two triggers are about bookings made in doTask. “After a booking” starts when one is marked done. “Days since their last visit” starts when a client’s last visit reaches that many days and nothing is booked ahead — once per lapse, and booking again starts the clock over. The “Time for your next visit” template uses it at six weeks: a friendly nudge and a way to book.