Docs › Automations
Every trigger and action
A reference for what can start an automation, how to narrow it down, the questions it can ask, what it can do, and the placeholders each one offers.
Experimental. Automations are still being tested. They may not run, or may give incomplete or wrong results — check anything important yourself, and tell us what goes wrong.
Triggers
Every automation starts with one trigger. Its Only… settings narrow down which ones count.
| When… | Only… | Placeholders |
|---|---|---|
| A booking is made | Only one meeting type | {guest.name} {guest.email} {booking.start} {meeting_type.name} |
| A booking is cancelled | Only one meeting type | same as above |
| A booking is moved to a new time | Only one meeting type | same as above — {booking.start} is the new time |
| An event is created | Only one Space · Only titles containing… | {event.title} {event.start} {event.calendar} |
| An event is changed | Only one Space · Only titles containing… | {event.title} {event.start} {event.calendar} |
| An event is cancelled | Only one Space · Only titles containing… | {event.title} {event.start} {event.calendar} |
| A task is created | Only one project · Only titles containing… | {task.title} {project.name} {task.due} |
| A task is assigned to me | Only one project · Only titles containing… | same as above |
| A task is completed | Only one project · Only titles containing… | same as above |
| A task's due date is set or changed | Only one project · Only titles containing… | same as above |
| A routine period is done | Only one routine | {routine.name} {period.name} {date} |
| A routine period is skipped | Only one routine | same as above |
| A form is submitted | Only one watched form | {form.name} {respondent.email} {submitted.at} and one {answers.…} per question — see Forms |
| Something happens in Stripe | Only one kind: a payment is received or fails, a subscription starts, changes or ends, an invoice is paid or its payment fails | {stripe.event} {stripe.amount} {customer.name} {customer.email} {stripe.description} {stripe.link} — see Stripe |
| A WhatsApp message arrives | Only messages containing… | {whatsapp.name} {whatsapp.from} {whatsapp.text} — see WhatsApp |
| An outside app calls a webhook | — (use an If step on a field) | Anything in the JSON it sends: {body.email}, {body.deal.stage} — see Start an automation from another app |
Booking triggers need the Bookings module, task triggers need Projects, and routine triggers need Routines.
How placeholders look when filled in:
| Placeholder | Becomes |
|---|---|
{guest.name} |
Priya Nair |
{guest.email} |
priya.nair@example.com |
{booking.start}, {event.start} |
Thu 17 Sept, 15:00 — in your time zone |
{meeting_type.name} |
Intro call |
{event.title}, {task.title} |
The title |
{project.name} |
Website relaunch (empty for a task in your own list) |
{task.due}, {date} |
2026-09-19 |
{routine.name}, {period.name} |
Morning, Walk |
A placeholder that doesn't apply to the trigger is left empty.
Questions — "If"
An If step looks at one placeholder and sends the automation down yes or no.
| How | Yes when… |
|---|---|
| contains / does not contain | the value has (or hasn't) the text anywhere in it |
| is / is not | the value is exactly the text |
| is empty / is not empty | there's nothing there (or something is) |
None of them care about capital letters. Put several If steps one after another to ask more than one question, and use the trigger's own Only… settings for the simple cases — they're checked before anything runs.
Actions
Chain as many as you need; each runs after the one above it. If one fails, the steps after it don't run.
Create a task
| Setting | Notes |
|---|---|
| Project and List | Where the task goes. Its first list if you don't choose. |
| Title | Placeholders welcome: Prep for {meeting_type.name} with {guest.name} |
| Due | No due date, due that day, the next day, in 2 days, or in a week — counted from the booking's or event's day, the task's due day, or the routine's day |
| Assign it to me | Otherwise the task is unassigned |
Create an event
| Setting | Notes |
|---|---|
| Space | Where the event goes |
| Title | Placeholders welcome |
| When | At its own time (bookings and events only) copies the start of what set it off, moved by Days from then. On a day, at a time uses Days from then counted from today, at the time you choose. |
| Days from then | 0 is the same day, -1 the day before, 1 the day after |
| Length | 15, 30, 45, 60 or 90 minutes |
Events made by an automation are saved even if you're busy then.
Move the task to a list
Moves the task that set the automation off to another list in the same project. Only works with task triggers. A task in a different project is left where it is, and the run says so.
Send an email
| Setting | Notes |
|---|---|
| Send to | An address, or a placeholder like {guest.email} |
| Subject and Email | Placeholders welcome in both |
Sent from your own Gmail when Gmail is connected, or from your Outlook address when Outlook mail is connected; otherwise from Daykite.
Notify me
A notification in Daykite with your message. Tick Email me too to get it by email as well.
Send a webhook
Sends what happened to one of your webhooks — for Zapier, Make, n8n or your own server. Set webhooks up first under Settings → Developer; see Connect other tools.
Add a row to a Google Sheet
Adds one row at the bottom of a tab each time it runs. Needs Google Sheets connected.
| Setting | Notes |
|---|---|
| Spreadsheet | Paste a Google Sheets link and choose Use it, or create a new spreadsheet with your columns as its header row |
| Tab | Which tab the rows go to |
| Columns | One per column, left to right. Each has a name (used only as the header of a new spreadsheet) and what goes in it — usually a placeholder like {guest.email}. Up to 26. |
A new Sheets step starts with a column for every placeholder the trigger offers; remove the ones you don't want.
Post to Discord
Posts a message to a channel in a Discord server you've added Daykite to. Needs Discord connected.
Nothing in the message can ping @everyone, a role or a person.
Create a Google Doc
Creates a document in your Google Drive with a Title and optional Starting text, both with placeholders. Needs Google Docs connected. With Add the link to the event or task on, the document's link is added to the notes of the event, booking or task that started the automation.
Create a folder
Creates a folder in Google Drive, Dropbox, OneDrive or Box, named with placeholders — {guest.name}, {task.title}.
Inside is a path like Clients/Active for Dropbox and OneDrive (missing folders are created), or a Box folder's
link. If the name is taken, a number is added. Like Google Docs, it can add its link to the event or task. Needs the
tool connected.
Create an Evernote note
Creates a note in Evernote with a Title, the Note text and, optionally, a Notebook by name — all with placeholders. Like Google Docs, it can add the note's link to the event or task. Needs Evernote connected.
Send a WhatsApp message
Sends one of your business's approved WhatsApp templates from your WhatsApp Business number. Needs
WhatsApp connected. To is a number like +447700900123 or one placeholder
({whatsapp.from} to reply); after choosing a template, fill in each of its values — placeholders work. At most 250 a
day.
Send a text message
Texts a phone number through your own Twilio account. Needs Twilio connected.
To is a number like +447700900123 or one placeholder that holds one ({body.phone}); Message takes
placeholders. At most 100 texts a day.
Post to Slack
Posts a message to a Slack channel each time it runs. Needs Slack connected.
| Setting | Notes |
|---|---|
| Channel | Any public channel in your workspace, or a private one you've invited @Daykite to |
| Message | Placeholders welcome, like New booking: {guest.name} at {booking.start} |
Text that fills a placeholder can't mention @channel or @here or add links, so a guest can't ping your whole
workspace by typing it into a booking form. Mentions you type into the message yourself still work.