Accelerate · Outbound control plane

An outbound control plane that books qualified calls.

Accelerate sources against your ICP, verifies eligibility, qualifies with evidence, runs sequences, escalates to voice and books into GoHighLevel — with every transition recorded.

Deterministic compliance gates Idempotent execution Replaceable vendors

Sequence run SQ-2041

Booked

Sarah Whitlam

Operations Director · Meridian Electrical

  1. Eligibility Email eligible · consent evidence on file

    Passed
  2. Qualification 78/100 · evidence verified · confidence 0.86

    Qualified
  3. Sequence Email 1 delivered · positive reply received

    Replied
  4. Voice DNCR checked · calling window respected

    Completed
  5. Booking Tue 10:30 · synced to GoHighLevel

    Synced
Every transition recorded Idempotent sends Full history in Postgres
Audit · booking synced appt_8812 · webhook verified

Why it’s serious

An engine, not a bot with an API key

A vendor list is not a product. Accelerate owns the parts that fail silently elsewhere — state, eligibility, retries, evidence — so nothing important depends on a chatbot’s mood.

Compliance

Gates before sends

Consent, suppression, DNCR and calling windows are evaluated by deterministic code before any channel fires.

Execution

Idempotent by default

Every send, call and booking carries an idempotency key — a retry can never double-touch a prospect.

Judgment

Evidence-backed qualification

Scores arrive structured, with evidence and confidence. Low confidence routes to a human, not onward.

Architecture

Vendors stay replaceable

Apollo, Retell, Twilio and GoHighLevel sit behind adapters. The engine keeps its own record either way.

Scope

Everything outbound needs, owned in one place

Each subsystem exists because its absence has a known cost — bad leads, double sends, legal exposure, or a CRM that quietly drifts from the truth.

01Prospect acquisitionSearch, import, dedupe and enrichment — source provenance kept for every data point.
02QualificationRubric, structured score, confidence and manual override — never a vague “good lead”.
03ComplianceConsent, suppression, DNCR, quiet hours and immutable evidence before any channel fires.
04Sequence orchestrationDurable state machine with delays, retries, branching and rate limits — not fragile cron.
05Channel adaptersEmail, SMS and voice normalized into one internal event model, so vendor logic never leaks.
06Conversation intelligenceReply intent, objections, summaries and next-action suggestions — triage without the triage.
07BookingAvailability lookup, reservation and conflict handling, synced to your calendar.
08CRM syncContacts, conversations, pipeline and appointments mirrored for the operator team.
09ExperimentationVersioning, attribution and controlled rollout — so “self-improving” is measured, not claimed.
10ObservabilityEvents, webhook replay and audit history — a real answer to “why did this happen?”

Lead lifecycle

One lead, end to end

Follow a prospect through the engine. Every state transition is decided by code; every judgment inside a step is made by a model — and both leave a record.

Book a pilot review

Stage 01 · Prospect acquisition

The prospect enters with provenance.

Leads arrive from a defined ICP query — never a scraped pile. Duplicates are removed before a single enrichment credit is spent.

Prospectprs_8f2a91
Name & title
Sarah WhitlamOperations Director
Company
Meridian ElectricalIndustrial services · AU
Source
Apollo search icp_au_opssourceRecordId retained for replacement later
Created
12 Feb, 09:38 AESTcontact points stored with verification state

Dedupe runs first — paid enrichment is never consumed on a duplicate.

Control & intelligence

AI supplies judgment. Code keeps authority

“AI generates judgment and language. Code controls authority and side effects.” That boundary is the product principle — it makes the system safer to run, cheaper to debug and possible to trust.

AI works inside bounded steps

Interprets enrichment and research
Scores fit against the rubric, with evidence
Classifies reply intent and objections
Drafts and adapts sequence messages
Holds a voice conversation with a narrow goal

Deterministic code decides

Channel eligibility, consent and suppression
Workflow state — never inferred from transcripts
Scheduling, retries, branching and rate limits
Idempotency keys before every external side effect
Bookings, CRM sync and the audit trail

Guardrails on every model call

Structured outputSchema-validated; malformed outputs are rejected, not parsed hopefully.
Evidence requiredHigh-impact claims must point to the input that supports them.
Confidence thresholdLow confidence routes to manual review instead of proceeding.
No compliance authorityA model may summarize consent context; it can never overrule a gate.
Versioned & replayablePrompt version and model stored per decision — re-run from frozen input to compare.
// The contract every qualification must satisfy type Qualification = { fitScore: number; // 0–100 need: "yes" | "no" | "unknown"; decisionMaker: boolean | null; timing: "now" | "soon" | "later"; evidence: string[]; confidence: number; // 0–1 recommendedAction: "continue" | "manual_review" | "stop"; }

Compliance

Compliance is a subsystem, not a disclaimer

Australian outreach rules are engineered into the flow — consent is established and evidenced before a channel fires, and eligibility is decided by code the model cannot overrule.

Consent first A commercial message is never the vehicle for asking consent — a lawful basis exists and is evidenced before sending.
Immutable evidence ConsentEvent stores source, scope and time. A purchased list is a contact, never consent.
Instant suppression Unsubscribe writes suppression first, then cancels queued steps — well inside the five-working-day expectation.
Calling windows Timezone-aware scheduling respects telemarketing hours and DNCR status before any call is placed.
Engineering rule: a language model may explain a compliance state, but it must never be able to override a deterministic not eligible decision.
Eligibility decision Gated before send
Email

Eligible — consent evidence cev_3092 on file

Sender identity & unsubscribe configured

Eligible
SMS

Consent required — no evidence captured yet

Gate holds the branch until basis exists

Held
Voice

DNCR check completed before dialling

Within allowed window · caller ID + disclosure script set

Allowed
ConsentEvent · source / scope / capturedAt / evidenceRef SuppressionEntry · reason + source event

Operator view

Your CRM stays the operator view

GoHighLevel is where your team lives. The engine keeps the canonical record underneath, so the CRM can be replaced without losing history.

Domain Control plane · Postgres GoHighLevel
Prospect identity Canonical + vendor IDs Mirrored contact
Consent & eligibility Canonical + immutable evidence Optional summary fields
Workflow state Canonical state machine Pipeline / opportunity summary
Messages Normalized log of every send & reply Operator-facing conversation
Appointments Canonical booking + GHL ID persisted Calendar appointment
Outcomes Canonical booked / attended / converted CRM reporting
Webhook payloads stored raw for replay Idempotent contact upserts Scoped OAuth · encrypted credentials
Execution truth lives in the control plane GoHighLevel mirrors it for the team

Architecture

Vendors are adapters. The control plane is the product

Postgres stores truth, the workflow runtime executes it, and vendors perform channel-specific work. Swap any box on the edge — the engine stays.

Lead sources

ApolloICP search & dataset, behind an adapter
CSV importDeduped before enrichment credits are spent
Web formsInbound enquiries with consent captured at source

Accelerate control plane

TypeScript · Postgres · durable workflows

Prospect stateidentity, contact points, status
Eligibility & consentevidence, suppression, windows
Qualificationrubric, score, evidence, confidence
Sequences & auditexecutions, retries, every event

Channels

Emaildedicated sending infra · SPF / DKIM / DMARC
SMSTwilio · consent-gated
VoiceRetell · eligibility-gated · stop tool built in

Operator CRM

GoHighLevelcontacts, inbox, pipeline, calendar
Sync contractidempotent upserts · both IDs persisted
Replaceablebusiness logic lives above the CRM

AI models — routed via OpenRouter for bounded tasks only: qualification, reply intent, drafting, summarization. Model choice is a setting, not an architecture.

structured outputs · versioned prompts
AuditEvent · prs_8f2a91append-only
12 Feb 09:38 System Prospect createdApollo search icp_au_ops · dedupe passed prs_8f2a91
12 Feb 09:52 Policy Email eligibleconsent evidence cev_3092 · legal basis recorded elg_0312
12 Feb 09:52 Model Qualified 78/100rubric v7 · confidence 0.86 · replayable qlf_7741
12 Feb 09:53 System Enrolled · Sequence v3email step scheduled with idempotency key ike_9d02
14 Feb 16:20 System Positive reply receivedpending steps cancelled · intent classified msg_b41c
18 Feb 10:04 Policy Voice allowedDNCR pass · window open · disclosure script set rtl_55e1
18 Feb 10:30 System Booked · synced to GHLinternal + vendor IDs persisted · webhook verified appt_8812

Audit & outcomes

Every answer from the record

Why was this person called? The system answers with data: the sequence, the eligibility decision, the consent evidence, the step executions, the provider call ID and the resulting webhook.

The data model behind it — 17 entities, audit-ready

Prospect ContactPoint DataClaim ConsentEvent SuppressionEntry Qualification Sequence SequenceEnrollment StepExecution Message VoiceCall Booking ExperimentAssignment Outcome WebhookEvent AuditEvent

Optimization

“Self-improving” means measured

Memory is storage. Improvement needs attribution, comparison and controlled change — so every wording, rubric and sequence ships as a version.

Versioned at enrollment

A prospect entering an experiment is pinned to an exact sequence, template and prompt version.

Attributed downstream

Outcomes are tracked past the reply — booked, attended, converted — not just opens and clicks.

Human-approved rollout

AI summarizes performance patterns; people approve changes. At 8–20 bookings a month, small differences aren’t proof — so changes ship as versions, with rollback.

Object Versioned Measured outcomes
Email template v2 Delivered · reply · positive reply · opt-out · booked
SMS copy v1 Delivery · response · opt-out · booked
Voice prompt v3 Connect · qualified · handoff · booked · opt-out
Qualification rubric v7 Override rate · booked · attended · converted
Sequence v3 Time-to-book · booked rate · cost per booked call
Interaction history preserved in full Outcomes attributed to the exact wording sent

The pilot

A 14-day pilot, defined honestly

One ICP, one primary sequence, one GoHighLevel sub-account, constrained volumes — and a complete audit trail from day one. Go-live means a controlled production pilot, not a promise of magic.

BuildDays 1–9 · schema, adapters, compliance engine, sequences, voice, booking
HardenDays 10–12 · offline QA, webhook replay, idempotency and policy tests, controlled ramp
Go liveDay 13 · production pilot segment and operator training
HandoverDay 14 · runbook, credentials, dashboards, rollback steps

PILOT TARGET

8–20

qualified calls per month, from a defined ICP

PILOT TARGET

10–15 hrs

of admin coordination returned weekly

PILOT TARGET

0

compliance incidents — gates run before every send

PILOT TARGET

100%

of engaged leads visible in one CRM

FAQ

Frequently asked questions

Straight answers about how the engine runs, what it owns, and what it will never do.

What exactly is Accelerate?

An outbound lead-qualification and call-booking control plane. It owns prospect state, compliance eligibility, sequence execution, bookings, CRM sync and audit history — while Apollo, OpenRouter, GoHighLevel, Retell and Twilio act as replaceable integrations.

Is this an autonomous bot that contacts whoever it wants?

No. AI classifies, scores, drafts and converses inside bounded steps. Deterministic code decides what may be sent, when, and to whom — eligibility, suppression, retries and scheduling are code and data, never model judgment.

How is consent handled under Australian rules?

Consent is established and evidenced before a channel fires, stored as an immutable ConsentEvent with source, scope and time. A purchased list is a contact, never consent. Unsubscribe writes suppression first, then cancels queued steps.

Can the AI override a compliance decision?

No. A model may explain a compliance state, but it cannot override a deterministic “not eligible” decision. That gate is code, evaluated before every send and every call.

Where does our data actually live?

In the control plane’s own Postgres: prospect records, consent evidence, every message, call, booking and outcome. GoHighLevel mirrors it for your team. If you leave GHL later, the engine keeps its own history.

Which vendors does it connect to?

Apollo for sourcing, OpenRouter for model routing, GoHighLevel as the operator CRM, Retell for voice and Twilio for SMS. Each sits behind an adapter with its own provider IDs, so any of them can be swapped later.

What does the 14-day pilot actually include?

A constrained production pilot: one ICP, one primary sequence, one GoHighLevel sub-account, limited volumes and a complete audit trail — built in nine days, QA’d offline, ramped carefully, then handed over with a runbook.

Are the pilot numbers guaranteed results?

No — they are pilot objectives, not claims. Targets like 8–20 qualified calls a month are what the pilot aims for; measured unit economics replace them as real data comes in.

14-day constrained pilot

Put your outbound on the record

See the engine, the compliance gates and the audit trail — then decide whether a pilot fits your team.

One ICP · one sequence · one CRM sub-account Complete audit trail from day one Runbook & rollback at handover