powered by

Slack alerts and Google Calendar bookings from workflows

Updated Sep 30, 2026
Two complete workflows: alert Slack about high-value orders, and create a Google Calendar event with a Meet link for every new booking.

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.

Post to Slack when a high-value order is created

Goal: notify a Slack channel only when an order is worth reviewing, not on every order.

Trigger: Event, EntityCreated on orders.

Trigger filter:

json
{ "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):

json
{
  "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.

Create a Google Calendar event from a booking record

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):

json
{
  "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 }}):

json
{
  "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 }}.

Slack alerts and Google Calendar bookings from workflows | Anythink Docs