sales-calls-outbound is an outbound sales engine for ClickToClose, an agency that helps businesses turn more leads into appointments through AI agents, CRM automation and follow-up systems. The product's intent is to generate qualified sales calls for ClickToClose itself: it finds businesses that fit ClickToClose's offers, identifies decision-makers, verifies contact details, removes duplicates, routes approved leads into market-separated campaigns, runs connected email and SMS sequences, uses AI reply agents to qualify interested prospects, integrates ClickToClose's calendars, and reports on lead sources, replies, qualified bookings, attended calls and costs.
The system does not replace ClickToClose's existing stack. ClickToClose already uses Instantly, GoHighLevel and some automation. The product's first job is to let the operator review that current setup, keep what works and build the missing pieces, then operate the improved outbound process end to end.
The audience is ClickToClose's own outbound operation: an Outbound Systems Operator who owns setup, sourcing, verification, campaign routing, sequence operation, failure handling and reporting, and a Sales Closer who takes unclear conversations routed to a person, handles interested prospects, and books and attends qualified calls.
sales-calls-outbound is a first-party web application with a shared backend. The application owns its identity, its lead and campaign records, its sequence and suppression state, its conversation and booking records, and its reporting data. It connects outward to the tools ClickToClose already runs — Instantly for email outreach, GoHighLevel for CRM and calendar work, and the existing automation — and it calls model providers through a LiteLLM gateway for the AI reply agents.
The public Landing page explains the outbound system before any sign-in. Login is the anonymous entry boundary where the operator and the closer establish or verify their identity; every working destination sits behind it. Setup Review, Leads, Lead Details, Campaigns, Sequences, Failed Steps and Reports are the operator's working surfaces. Conversations and Bookings are the closer's working surfaces. Access to each working surface is role-restricted to the persona named for it in the page contract.
Current delivery covers the full accepted lifecycle: setup review, sourcing, decision-maker identification, contact verification and deduplication, approval, campaign routing with target markets kept separate, email and SMS sequence execution with consent-gated SMS, AI reply qualification, calendar-integrated booking, follow-up suppression on reply, opt-out or booking, duplicate message and appointment prevention, failed-step flagging, human escalation of unclear conversations, and reporting. Nothing in this document describes a future horizon; all accepted requirements are current.
Removed from scope
Not applicable. No reference directive supplies a content_source.
FR-01 — Generate qualified sales calls. As an Outbound Systems Operator, I should run an outbound process that produces qualified sales calls for ClickToClose, so that the agency's pipeline is fed by booked calls. Provenance: explicit. Lifecycle: the operator initiates sourcing and campaign work; the Sales Closer books and attends the resulting calls; the observable result is a booked, attended qualified call recorded in Bookings and counted in Reports. Access: role-restricted working surfaces behind Login. Failure: any step that fails is flagged in Failed Steps and the operator can retry. Continuation: booked calls flow into Reports.
FR-02 — Find fit businesses. As an Outbound Systems Operator, I should source businesses that fit ClickToClose's offers within a chosen target market, so that outreach starts from relevant prospects. Provenance: explicit. Trigger: the operator starts a sourcing run for a market on Leads. Observable result: sourced businesses appear in that market's lead list. Failure: a failed sourcing run is surfaced on Leads and can be retried without losing already-sourced leads.
FR-03 — Identify decision-makers. As an Outbound Systems Operator, I should identify the decision-maker at each sourced business, so that outreach reaches the person who can decide. Provenance: explicit. Observable result: each lead carries its identified decision-maker, visible on Leads and Lead Details. Failure: a lead without an identified decision-maker is visibly incomplete and cannot be approved as verified.
FR-04 — Verify contact details. As an Outbound Systems Operator, I should verify contact details for each lead, so that outreach uses reachable, correct contacts. Provenance: explicit. Trigger: the operator verifies on Lead Details. Observable result: each contact detail carries its verification result. Failure: a failed verification is shown per contact detail with retry; the lead's prior state is preserved.
FR-05 — Remove duplicates. As an Outbound Systems Operator, I should remove duplicate leads, so that the same business or decision-maker is not worked twice. Provenance: explicit. Observable result: duplicate findings are listed on Lead Details and resolved before approval; a resolved duplicate does not reappear as a new lead. Failure: an unresolved duplicate blocks approval.
FR-06 — Approve leads. As an Outbound Systems Operator, I should approve a verified, deduplicated lead, so that only qualified leads enter campaigns. Provenance: explicit. Observable result: the lead shows as approved on Leads and becomes eligible for routing. Failure: approval is unavailable while verification or duplicate resolution is outstanding.
FR-07 — Route approved leads into relevant campaigns. As an Outbound Systems Operator, I should route an approved lead into the campaign for its target market, so that the lead receives the right outreach. Provenance: explicit. Observable result: the lead appears in that campaign's routed list. Failure: a routing error leaves the lead approved and unrouted for retry; recovery re-routes without creating a duplicate routing.
FR-08 — Keep each target market separate. As an Outbound Systems Operator, I should keep each target market's leads, campaigns and sequences separate, so that markets never mix. Provenance: explicit (hard constraint). Observable result: Leads, Campaigns and Sequences present market-scoped views; a lead is routed only into a campaign bound to its own market. Failure: an attempt to route across markets is refused and surfaced.
FR-09 — Connect email and SMS sequences. As an Outbound Systems Operator, I should connect email and SMS sequences to campaigns, so that routed leads receive multi-channel outreach. Provenance: explicit. Observable result: the sequence runs with enrolled contacts on Sequences. Failure: a failed step is flagged in Failed Steps; recovery re-runs the step without producing a duplicate message.
FR-10 — Build AI reply agents that qualify interested prospects. As an Outbound Systems Operator, I should run AI reply agents that qualify interested prospects, so that only genuinely interested prospects advance. Provenance: explicit. Observable result: each reply carries a qualification outcome; qualified prospects become eligible for booking; unclear conversations are routed to the Sales Closer. Failure: an agent failure is flagged and the conversation is not silently dropped.
FR-11 — Integrate ClickToClose calendars. As an Outbound Systems Operator, I should connect ClickToClose's calendars, so that qualified prospects can be booked onto real availability. Provenance: explicit. Observable result: Bookings shows availability from the integrated calendars. Failure: an unavailable calendar is surfaced and booking is blocked until it is reachable.
FR-12 — Stop follow-ups on reply, opt-out or booking. As an Outbound Systems Operator, I should have follow-ups stop when someone replies, opts out or books, so that prospects are never chased after they have engaged, declined or committed. Provenance: explicit (hard constraint). Observable result: the contact's sequence state shows suppressed with the reason (reply, opt-out or booking). Failure: a suppression that cannot be applied is flagged in Failed Steps.
FR-13 — SMS only to approved contacts with verified consent. As an Outbound Systems Operator, I should send SMS only to approved contacts with verified consent, so that SMS outreach stays compliant. Provenance: explicit (hard constraint). Observable result: Sequences shows each contact's consent status and blocks SMS sending without verified consent. Failure: a blocked SMS is shown as blocked, not sent.
FR-14 — Prevent duplicate messages. As an Outbound Systems Operator, I should have the system prevent duplicate messages, so that no contact receives the same message twice. Provenance: explicit (hard constraint). Observable result: a repeated send attempt is suppressed and the contact's message history shows one message. Failure: a retry after a failed step does not create a second message.
FR-15 — Prevent duplicate appointments. As an Outbound Systems Operator, I should have the system prevent duplicate appointments, so that a prospect is never booked twice for the same call. Provenance: explicit (hard constraint). Observable result: a conflicting booking attempt is refused on Bookings and no second appointment is created. Recovery: the closer is offered another slot.
FR-16 — Flag failed steps. As an Outbound Systems Operator, I should see failed steps flagged, so that I can find and fix what broke. Provenance: explicit. Observable result: the failure appears in Failed Steps with sequence, contact, channel and detail. Failure: a retry that fails again is re-flagged rather than dropped. Continuation: the failure stays visible until acknowledged.
FR-17 — Route unclear conversations to a person. As a Sales Closer, I should receive conversations the system could not resolve, so that a human handles them. Provenance: explicit. Observable result: the conversation appears in Conversations with its routing reason and qualification context. Failure: a conversation released by the closer returns to the routed list.
FR-18 — Handle routed conversations. As a Sales Closer, I should take a routed conversation and respond, so that unclear prospects get a human answer. Provenance: explicit. Observable result: the conversation shows as taken and the response is recorded. Failure: a failed send keeps the drafted response for retry.
FR-19 — Book qualified calls. As a Sales Closer, I should book a qualified prospect onto an integrated calendar, so that the qualified call is scheduled. Provenance: explicit. Observable result: the booking is confirmed on Bookings and follow-ups for that contact are suppressed. Failure: a conflicting or duplicate appointment is refused and another slot is offered.
FR-20 — Mark attended calls. As a Sales Closer, I should mark a booked call as attended, so that attendance is recorded truthfully. Provenance: explicit. Observable result: the booking shows attended and Reports counts it as an attended call.
FR-21 — Report on lead sources, replies, qualified bookings, attended calls and costs. As an Outbound Systems Operator, I should read clear reports on lead sources, replies, qualified bookings, attended calls and costs, so that I can judge what the outbound engine produces. Provenance: explicit. Observable result: Reports renders each metric for the chosen period. Failure: a failed query shows a clear message and allows re-request without losing the period.
FR-22 — Review the current setup and keep what works. As an Outbound Systems Operator, I should record the current Instantly, GoHighLevel and automation setup and mark each part to keep or build, so that existing working pieces are preserved and only missing pieces are built. Provenance: explicit. Observable result: Setup Review shows each part with its disposition and a consolidated missing-pieces list. Failure: an entry error preserves the entered part for retry without duplicating the row.
FR-23 — Self-service enrollment. As an Outbound Systems Operator or a Sales Closer, I should establish my identity on first use, so that I can reach my working surfaces. Provenance: required_inference. Trigger: first visit to Login. Observable result: identity is established and the role's surface opens. Failure: an invalid entry shows a clear error and the form stays usable.
FR-24 — Verify identity at each return. As an Outbound Systems Operator or a Sales Closer, I should verify my identity when I return, so that my work stays private to me. Provenance: required_inference. Observable result: the session opens the role's surface. Failure: failed verification shows an error and allows re-entry.
FR-25 — Connect Instantly, GoHighLevel and the calendars. As an Outbound Systems Operator, I should connect Instantly, GoHighLevel and ClickToClose's calendars, so that the system can drive email, CRM and booking work through the tools ClickToClose already uses. Provenance: required_inference. Observable result: the connection state is visible where the tool is used (Sequences for email, Bookings for calendars). Failure: an unreachable connection is surfaced and the dependent action is blocked rather than silently failing.
FR-26 — SMS consent gate. As an Outbound Systems Operator, I should have SMS sends gated on approved contact status and verified consent, so that no SMS leaves without both. Provenance: required_inference. Observable result: the gate blocks and reports the block on Sequences. Failure: a blocked send is recorded as blocked.
The operator owns the machine. Their product context is ClickToClose's own outbound process, which already runs on Instantly, GoHighLevel and some automation; the operator's first work is to record that setup in Setup Review and mark each part to keep or to build, producing the list of missing pieces the system must supply.
Their primary goal is a steady flow of qualified sales calls produced by a process they trust. Their distinct accepted responsibilities are: reviewing and recording the current setup; sourcing fit businesses per target market; identifying decision-makers; verifying contact details and removing duplicates; approving leads; routing approved leads into market-separated campaigns; connecting and running email and SMS sequences with SMS gated on verified consent; operating the AI reply agents; reviewing flagged failed steps and retrying them; and reading reports on lead sources, replies, qualified bookings, attended calls and costs.
Their inputs and decisions are the target market to source, the keep/build disposition of each setup part, the verification and duplicate resolution on Lead Details, the approval of a lead, the routing of a lead into a campaign, and the retry or acknowledgement of a failed step. They interact with the Sales Closer by handing over unclear conversations through Conversations and by relying on the closer's bookings and attendance marks to make Reports truthful. Their observable success is a market-separated pipeline where every approved lead is verified and deduplicated, sequences run without duplicate messages, failures are visible and resolved, and Reports shows the lead sources, replies, qualified bookings, attended calls and costs of the period.
What makes this role different: the operator works on the process itself — setup, sourcing, verification, routing, sequence health and reporting — rather than on individual prospect conversations. They never take a routed conversation or book a call; those belong to the closer.
The closer owns the human side of the conversation. Their product context is the set of conversations the AI reply agents could not resolve and the qualified prospects who are ready to book. They reach their work through Conversations and Bookings.
Their primary goal is to turn routed and qualified prospects into attended calls. Their distinct accepted responsibilities are: taking unclear conversations routed to a person, reading the qualification context, responding as a human, marking a conversation handled, booking a qualified prospect onto an integrated calendar, and marking a booked call as attended.
Their inputs and decisions are which routed conversation to take, what to reply, whether a prospect is ready to book, which available slot to book, and whether a booked call was attended. They interact with the Outbound Systems Operator by receiving the conversations the system routes and by producing the bookings and attendance marks the operator's Reports depend on. Their observable success is a routed conversation answered and closed, a qualified call booked without a duplicate appointment, and an attended call recorded.
What makes this role different: the closer works one prospect at a time in conversation and on the calendar. They do not source, verify, route, configure sequences or read the operator's reports.
The muse is Jony Ive: quiet precision for an outbound engine. The product must show control and trust, not hype — calm surfaces, one lit subject and honest data.
Mode: light.
Colour tokens by role
| Role | Hex | Use |
|---|---|---|
| Background | #F4F4F2 | Aluminium grey ground for every page |
| Surface | #FFFFFF | White panels; the hero panel is the only lifted surface |
| Text | #16181A | Ink text for headlines, body and tabular numerals |
| Primary | #16181A | Primary controls and the wordmark |
| Accent | #C2410C | Burnt orange, reserved for the active step and the booked call only |
| Muted | #6E7378 | Secondary labels and supporting copy |
| Divider | #E2E2DE | Hairline 1px dividers |
Typography: headings and body both Inter Tight. Headlines at Light 300 with tight tracking; labels at 500 at small size with wide tracking. Modular scale 1.333: 96 / 72 / 54 / 40 / 27 / 20 / 16 / 13. Headline size clamp(44px, 8vw, 96px).
Shape language: soft continuous curves at 20px radius. Hairline 1px dividers in #E2E2DE. No shadows except one soft lift on the hero panel.
Layout: single column with wide 96px margins. One subject per band. Ruled data rows aligned left. No card grid.
Imagery: macro renders of one matte graphite device on a plain grey ground. No stock people. No clip art.
Avoid: gradient blobs; grids of identical hover-lift cards; blue or indigo accents; stock photos of people; bouncy motion.
Readability rule: headlines, wordmarks, labels, numbers, cards' text and controls stay entirely inside the viewport and their container at 375px, 768px and 1280px, wrapping or scaling to fit, with no other element covering them. Imagery and decoration may bleed, crop or overlap; readable text and controls may not.
The public entry is a full-width graphite band holding one lit abstract object on the right — a macro-rendered matte graphite form on a plain grey ground, lit from one side. On the grey ground to the left sits a 96px Light 300 Inter Tight headline spanning the viewport, with a single burnt orange rule beneath it. A vertical hairline rail tracks the pipeline stages on the left edge — source, identify, verify, route, sequence, qualify, book — with the current stage marked in #C2410C and the rest in #6E7378. Below the band, the explanation of the outbound system is set as ruled rows with hairline dividers and tabular numerals, one subject per band, never a card grid. The single entry control to Login sits on the grey ground, ink on white, with the one soft lift reserved for the hero panel. The composition recomposes only accepted content: the pipeline stages the system actually runs and the single entry into Login.
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: layered_2d
Landing Hero Motion Brief

Outbound engine · ClickToClose
sales-calls-outbound finds businesses that fit our offers, verifies the decision-maker, sequences email and consent-gated SMS, and qualifies every reply until a call is booked on the calendar.
Seven stages, one reviewable path from a sourced business to a booked call.
Four stages, run in order, from first source to a booked call.

Outbound engine · ClickToClose
sales-calls-outbound finds businesses that fit our offers, verifies the decision-maker, sequences email and consent-gated SMS, and qualifies every reply until a call is booked on the calendar.
Seven stages, one reviewable path from a sourced business to a booked call.
Four stages, run in order, from first source to a booked call.
No comments yet. Be the first!