All help articles

Integrations · Slack

Post bookings into Slack

Two ways to keep Slack in the loop: real-time messages the moment each event fires, or one daily digest summarizing today's appointments. Pick whichever your team actually reads.

Open Integrations

Real-time events

Each event posts as a single richly-formatted message — usually within a second of the action in SimpleDock. Use the toggle to see how each event type renders.

#dock-events·12 members
SimpleDock
SimpleDockapp2:14 PM
📅Appointment bookedAcme Freight
Location
Reno DC
Door
Door 4
Type
Inbound dry van
Start
May 12, 2026, 7:00 AM
Driver
Maria Lopez
PO
PO-2026-4471
Manage appointment

Daily digest

One Block Kit message per day at the local time you choose, listing every confirmed appointment for that day. Quiet days still post — the message reads “No appointments today” so the channel sees a heartbeat either way.

📅 Today at Acme Logistics — Friday, May 8
  • 7:00 AM–8:00 AM — Northstar Freight
    Door 3 · Inbound dry · Driver Maria Lopez · PO 88421
  • 9:30 AM–10:30 AM — Coastal Carriers
    Door 1 · Outbound reefer · Driver Sam Patel
  • 1:00 PM–2:00 PM — Brightway Distribution
    Door 2 · Inbound dry
Open SimpleDock · times in EDT

The digest covers only confirmed appointments — pending requests don't appear until they're approved. Times shown per row use each appointment's location timezone, with the digest's overall timezone in the footer. Long days are capped at 40 rows with a “+N more in SimpleDock” overflow line.

When does it actually fire?
The cron checks every 15 minutes, so digests post within ~15 minutes after your chosen time. Available times run from 5:00 AM to 11:30 AM in 30-minute increments — picked to land before the day starts, not during it.

Set it up

  1. 1
    Create a Slack app
    Go to api.slack.com/apps and click Create New App → From scratch. Name it "SimpleDock Notifier" and pick your workspace.
  2. 2
    Enable Incoming Webhooks
    In the app settings, open Incoming Webhooks and toggle it on. Click Add New Webhook to Workspace, choose the channel (e.g., #dock-events), and approve.
  3. 3
    Copy the webhook URL
    Slack shows a URL like https://hooks.slack.com/services/T0…. Copy it.
  4. 4
    Paste it into SimpleDock
    In Settings → Integrations, click Add Slack and paste the URL. Pick a delivery mode: Real-time events (choose which event types fire) or Daily digest (choose a local send time and timezone). Then choose which locations this endpoint covers.
  5. 5
    Send a test message
    Hit Send test. A friendly "👋 Test event from SimpleDock" appears in your channel within a second — works for both real-time and digest endpoints, so you can verify the URL before tomorrow morning's first digest.
Channels are flexible
Each Incoming Webhook is bound to one channel. Want bookings in #dock-events, no-shows in #warehouse-alerts, and a 7 AM digest in #dock-morning? Create three webhooks in Slack and add them as three endpoints in SimpleDock with different modes, filters, and locations.

Tune what posts

For real-time endpoints, by default we send all 8 event types. Most teams trim that:

  • Dispatcher channel: appointment.created and appointment.cancelled only. Keeps the channel actionable.
  • Warehouse channel: appointment.checked_in and appointment.no_show. Floor staff knows when trucks arrive — and when one doesn't.
  • Manager channel: appointment.no_show only. Daily heartbeat without the noise.

For digest endpoints there's no event filter — pick the locations to include and the time to send. One digest per endpoint per day, scoped to that endpoint's locations only.

Troubleshooting

  • "channel_not_found" — the channel was renamed or deleted. Re-pair the webhook in Slack and paste the new URL.
  • Endpoint went inactive — Slack returned a 4xx multiple times. We auto-disable to stop hammering. Fix the URL and click Reactivate.
  • Messages too noisy — narrow the event types, or switch this endpoint to Daily digest mode. You can also create a second endpoint pointing to a different channel for low-priority events.
  • Digest didn't post — check the timezone (it ships in the local time you picked, not UTC), make sure at least one location is selected, and confirm the endpoint is still active. The cron checks every 15 minutes, so allow a small window after the chosen time.
  • Digest is empty every day — it only counts confirmed appointments. If your team works from approval queues, requests sitting in pending won't appear until they're approved.