Help center

Automations and workflows

In every planOwners only

DVT does a lot by itself: confirmations, reminders, review requests, follow-ups. Owners see all of it in one place under Automations, switch each piece on or off, and build their own workflows.

Built-in automations

Automations → Built-in lists everything DVT does on its own, each with its own switch:

AutomationTo start with
Booking confirmation emailOn
Appointment reminder emails (24 hours and 1 hour before)On
Appointment reminder texts, for people who asked for themOn
Mark bookings completed, 3 hours after they endOn
Ask for a review after a booking (at most once every 90 days)On
Email chat replies to visitors who left (after 2 minutes)On
Text back missed calls (at most once a day per caller)On
New leads open a dealOff
A payment marks the deal wonOff
A payment starts a projectOff
A won deal starts a projectOff
Complete projects when every task is doneOff
Delete a contact's tasks with themOn
Posts wait for an owner's approvalOn

Workflows

A workflow is your own automation: something happens, then DVT does the steps you chose, with waits and checks in between.

  1. Go to Automations → Workflows and start from scratch or from a ready-made one: New lead follow-up, Missed appointment, Cancelled booking win-back, New customer welcome or Won deal kickoff.
  2. Pick what starts it.
  3. Add steps, waits (“wait 1 day”, up to a year) and if/else checks (“if they haven't booked”).
  4. Turn it on.

Each workflow keeps a history of who went through it and what every step did. A contact's page shows the workflows they're in, and you can add someone to one by hand.

Triggers and steps

A workflow can start when:

  • a contact is added, a tag is added or removed, or a form is sent;
  • they send a message, or a call is missed;
  • an appointment is booked, cancelled or completed, or someone doesn't show up;
  • a deal is added, moves stage, is won or is lost;
  • a payment is made; or you add someone by hand.

Its steps can:

  • send a text or an email, or email the team;
  • add or remove a tag, assign the contact to a team member, or add a note;
  • add a deal, move their deal, or mark it won or lost;
  • start a project, or ask for a review;
  • hand the job to your own AI (see Connect your AI).

Texts and emails can use fields: {first_name}, {name}, {email}, {phone}, {business_name}, {booking_link}, {review_link}, {appointment_time}, {appointment_type} and {deal_name}. Add a fallback for when one is blank: {first_name|there}.

Workflow rules

  • By default, a workflow stops for someone once they reply. You can change that.
  • Choose whether someone can go through it again once their last run has ended, or only once ever.
  • A workflow can have up to 50 steps, and if/else checks can go 3 deep.
  • Texts only go to people who agreed to texts or texted you first, and wait for 8am–9pm. Emails carry an Unsubscribe link.
  • A step that can't run is skipped, and the history says why (no permission to text, a bounced email, the month's allowance).

Workflows a connected AI builds for you are saved switched off, for you to check before turning them on.

Common questions

Where do I switch off reminder emails or the missed-call text?

Owners: Automations → Built-in lists everything DVT does by itself, each with its own on/off switch.

Why didn't my workflow send a text or email?

Open the workflow's history: each step says what it did, or why it was skipped (they hadn't agreed to texts, their email bounced, quiet hours, the month's allowance). Texts follow the same rules as everywhere else in DVT.

Will a workflow keep messaging someone who replied?

Not by default: a workflow stops for someone once they reply. You can change that, and choose whether someone can go through a workflow again once their last run has ended, or only once ever.

What can I put in a workflow text or email?

Fields like {first_name}, {name}, {email}, {phone}, {business_name}, {booking_link}, {review_link}, {appointment_time}, {appointment_type} and {deal_name}. Add a fallback after a bar for when it's blank: {first_name|there}.