AI Systems

After-Hours Carrier Call Intake

Worst failure in after-hours intake: caller told "you're booked" when nothing saved. Retell + n8n backend hardening so the agent only confirms committed bookings. Sell against Extensiv dock modules as targets—Origin is AI voice agency hardening, not a delivered yard system.

  • Logistics/3PL
  • Retell
  • n8n n8n
  • GoHighLevel
  • Extensiv
  • Voice AI
After-Hours Carrier Call Intake — case study visual

Overview

The project at a glance

The worst failure in automated appointment intake is not a missed call — it is a caller told "you're booked" when nothing was saved. This page documents a voice-booking hardening pattern we built: the booking and notification backend rebuilt on n8n so the voice agent only confirms what the backend committed, notifications fire reliably, and CRM state stops drifting — framed for after-hours carrier and driver calls. Sell-side targets include Extensiv dock modules.

**Origin pattern:** A voice-booking hardening pattern built for an AI voice agency, applied to after-hours carrier and driver intake. **Not a dock or yard system; no carrier calls were handled.**

What the engagement had to achieve

  1. Confirm only after the backend has committed the booking
  2. Rebuild fragile webhook chains into a reliable n8n backend
  3. Fire staff and caller notifications from the committed record
  4. Keep CRM state aligned with what the caller heard
  5. Stay distinct from the slot-engine page (concurrency / DST) — cross-link both

The story

The challenge, and how we solved it

What was at risk

The Challenge

Carriers and drivers call when the office is closed: to book a delivery window, move an appointment, or say they are running late. A voice agent looks like the answer, but if it says "you're confirmed for 6 a.m." and the booking write failed, the truck arrives to no appointment. Notifications fail quietly too — the dispatcher's alert never fires, or the CRM shows a different state from what the caller was told.

Failure mode 01
False confirmation

Agent says confirmed; backend write failed; dock has no record.

Failure mode 02
Silent notification failure

Dispatcher never gets the alert; CRM drifts from the call transcript.

Failure mode 03
Not a dock-yard product

Connecting to a dock-scheduling tool or WMS would be **new work**. This page is failure-hardening of the conversation-to-backend path, not the slot engine.

How we responded

The Solution

Decision 01
Backend-first confirmation

The voice agent receives a success response only after the booking is actually committed; otherwise it says it cannot confirm and routes to follow-up.

Decision 02
Booking and notification backend on n8n

Fragile webhook chains replaced with an n8n backend; notifications tied to the committed booking rather than the call transcript.

Decision 03
CRM state-drift prevention

The record matches what the caller heard.

Decision 04
How this differs from dock scheduling

Our double-booking-safe scheduling page is the **slot engine** (concurrency lock, DST-safe slots). This page is the **failure-hardening of the conversation-to-backend path**. Cross-link both.

Decision 05
Market context (targets, not delivered)

Dock-scheduling tools (Opendock, Extensiv SmartDock and peers) and carrier dispatch lines are typical targets. Voice platforms such as Retell. **No dock-tool or WMS integration was built. Non-English voice is not proven.**

Deliverables

What we built

The concrete capabilities designed, built, and shipped in this engagement.

Backend-first voice confirmation

The Retell voice agent receives a success response only after the booking is actually committed; otherwise it says it can't confirm and routes to follow-up.

Booking and notification backend rebuilt in n8n

Fragile webhook chains replaced with an n8n booking and notification backend.

Reliable notifications tied to the commit

Staff and caller notifications fire from the committed booking — not from the call transcript alone.

CRM state-drift prevention

CRM / calendar record is kept in sync with what the caller heard, so the desk does not inherit a "confirmed" ghost booking.

Webhook and surrounding web-stack fixes

Webhook and calculator fixes across the surrounding web stack that had been dropping or double-firing events.

Distinct from the dock-slot engine page

This page is failure-hardening of the conversation-to-backend path. The concurrency lock / DST-safe slot engine lives on the double-booking-safe scheduling page — cross-linked, not conflated.

Technology

The stack

The tools behind the build, and the role each one played.

Orchestration / Actual stack

Retell

Orchestration / Actual stack
n8n

n8n

Orchestration / Actual stack

GoHighLevel

3PL systems (integration targets)

Extensiv

3PL systems (integration targets)

NetSuite

3PL systems (integration targets)

MercuryGate

3PL systems (integration targets)

FreightPOP

3PL systems (integration targets)
QuickBooks

QuickBooks

3PL systems (integration targets)

Descartes

Outcome

What changed

Measured answer-rate or booking-volume figures

None claimed

Design/process outcome

Backend-first confirmation

agent never confirms a booking that did not happen (Notion design goal, used as lasting process outcome)

Design/process outcome

Notifications tied to the committed booking

rather than the call transcript

Design/process outcome

CRM state-drift prevention

so the record matches what the caller heard

Your system next

Want an outcome like this one?

A short workflow review maps where automation, AI, or a platform would pay off in your operation — and the first system worth building.