Outbound engine: Find what is blocking outbound, then act on the next exception.
Sending, enrichment, verification and CRM sync in one outbound desk. Every delivery exception arrives with its evidence and a recovery flow that reports when it has already been applied. Shown as the workspace for Parcelline, a lead-generation agency booking meetings for logistics-software vendors.
The problem
Outbound operations become difficult to control when sourcing, enrichment, verification, sending and CRM updates run independently. A contact can enter two sequences, receive outreach after replying or appear qualified in HubSpot while its verification failed. The system is designed to expose those handoffs, hold unsafe records and make recovery specific to the failed step.
How the system is built
- SourcesApollo prospects, Clay enrichment, TREG/MONID verification and signals.
- IngestionDesigned n8n workers receive callbacks and poll incremental changes every 15 minutes.
- NormalizationCanonical company domains, normalized emails and provider-ID mappings.
- StoragePostgres contact ledger, campaign membership, events and transactional outbox.
- DecisionsEligibility, suppression, bounce holds and reviewable reply classification.
- DashboardContact pipeline, sending health, exceptions and CRM synchronization.
- Write-backsApproved Instantly/HeyReach enrollment, HubSpot upserts and Calendly booking reconciliation.
The dashboard
13 views: Today, Client summary, Replies, LinkedIn threads, Follow-ups, Exceptions, Deliverability, Sequences, Lists and enrichment, Meetings, Opportunities, Economics, Run log.
The send-day conveyor: one lane per inbox from 08:00 to 18:00, send blocks drawn to scale, held sends hatched with the rule that held them, and the exception queue underneath with the people affected.
State lives in the URL (view, filters, date range), records open in drawers with their history, and every action that changes something is written to an activity log and is safe to repeat.
Data model
contacts(id, account_id, email, email_status, enriched_at, cost_cents)accounts(id, domain, owner_id, crm_id)verifications(id, contact_id, provider, result, checked_at)campaign_memberships(id, contact_id, campaign_id, state)messages(id, membership_id, provider_id, reply_class)exceptions(id, entity_id, reason, resolution)integration_events(id, source, external_id, received_at)outbox(id, idempotency_key, destination, state, attempts).
Rules in the backend
- Enroll only verified, unsuppressed contacts with no active enrollment in the same campaign.
- Proposed bounce rule: hold a sending domain at a hard-bounce rate of at least 2.0% over the trailing seven days, with at least 100 attempts; flag smaller samples separately.
- A reply or Calendly booking stops subsequent outreach before classification completes.
- HubSpot writes use
tenant:contact:operation:versionidempotency keys. - Ambiguous replies enter review rather than automatically becoming qualified opportunities.
Storage
Recommend Supabase Postgres with tenant RLS. Proposed retention: raw callbacks 30 days, operational records 12 months, audit history 24 months, subject to deletion policy. Mask personal emails in shared views; restrict full addresses to authorized operators.
Reliability
Use bounded exponential retries, provider rate-limit handling and a dead-letter queue. Show checkpoint receipts, last successful collection, a dated last-updated time, stale data and failed CRM writes separately.
Security and access
Tenant authentication separates administrators, operators, approvers and read-only clients. Provider credentials remain in server-side secrets storage. Enrollment requires permission and an explicit approval gate.
Cost
Apollo access, Clay credits, verification requests, sending subscriptions and mailboxes incur costs. Track actual provider charges per processed record; no fixed enrichment price or savings claim is established.
Use it
The window above runs the full workspace. Pause the tour and click through it, or open it full screen.
Technology stack
Apollo
Clay
TREG
MONID
Instantly
HeyReach
HubSpot
Calendly
Source & context
Designed and built by Ahmad Bukhari in November 2026.
The working interface represents the outbound workflow and records; connected orchestration, credentials and destination acceptance remain deployment work.
Built: 2026-11-03
Map a workflow like this
Start with the handoffs your team already runs and where they break.