Each recipe is a full workflow you can rebuild and change. They build on How workflows work and How integrations work — read those first if triggers, steps or connections are new to you.
Goal: notify a Slack channel only when an order is worth reviewing, not on every order.
Trigger: Event, EntityCreated on orders.
Trigger filter:
{ "and": [{ "field": "total", "op": "gte", "value": 500 }] }
Filtering at the trigger, rather than with a Condition step, means no job is created for ordinary orders. See Triggers and scheduling for every filter operator.
| Key | Step | Why |
|---|---|---|
notify_slack |
Integration | Post the order details to a review channel |
notify_slack (provider Slack, operation Send Message):
{
"channel": "#high-value-orders",
"text": "Order over £500: {{ $anythink.trigger.data.customer_email }} — £{{ $anythink.trigger.data.total }}",
"unfurl_links": false
}
Credential Source: system — one shared Slack connection for the whole project, since this isn't a per-user notification.
What to change: swap the total filter for whatever threshold or condition matters (a status field, a region, a flag from an earlier step), and swap the channel for wherever the right people are.
Goal: the moment a bookings record is created, put it on the customer-facing calendar with a video link, and store the created event's ID back on the record so it can be updated or cancelled later.
Entities: bookings (customer_name text, starts_at timestamp, ends_at timestamp, calendar_event_id text, nullable).
Trigger: Event, EntityCreated on bookings.
| Key | Step | Why |
|---|---|---|
create_event |
Integration | Create the Google Calendar event |
store_event_id |
Update data | Save the event's ID back on the booking, so it can be found later |
create_event (provider Google Calendar, operation Create Event):
{
"summary": "Booking: {{ $anythink.trigger.data.customer_name }}",
"startDateTime": "{{ $anythink.trigger.data.starts_at }}",
"endDateTime": "{{ $anythink.trigger.data.ends_at }}",
"addGoogleMeet": true,
"sendUpdates": "all"
}
store_event_id (Update data on bookings, filtered to id = {{ $anythink.trigger.id }}):
{
"calendar_event_id": "{{ $anythink.steps.create_event.data.id }}"
}
Credential Source: system for a shared booking calendar. If each staff member books on their own calendar instead, connect Google Calendar per user and set current_user — see Add a user-scoped connection.
On failure: link create_event's failure output to a step that flags the booking for manual follow-up (a Condition or Update data step setting a needs_attention flag), rather than leaving a booking silently uncalendared — see Step types for how failure links work.
What to change: to keep the calendar in step when a booking is cancelled or moved, add a second workflow on EntityUpdated for bookings (filtered with changed on starts_at or changed_to on a status field) whose Integration step calls Google Calendar's Update Event or Delete Event with eventId set to {{ $anythink.trigger.data.calendar_event_id }}.