Event-order ambiguity
Vapi webhooks could arrive out of order. Preliminary call-ended events were deferred until richer end-of-call reports arrived, while completion activity was upserted to avoid duplicate processing.
AI voice outreach connected to campaign operations and CRM follow-through — coordinating lead intake, structured outcomes, CRM updates, calendar booking and email follow-up across Vapi, Pipedrive, Twilio, FastAPI and AWS.

Sales teams needed multi-stage outreach without manual dialing or fragile copy-paste between voice, CRM, calendar and email tools.
Three related services handled campaign operations, AI voice execution and CRM orchestration. Asynchronous workers managed concurrency and retries; structured call results controlled stage progression; recordings were persisted privately; and CRM updates preserved unrelated data while coordinating next actions.
01 · Voice outreach platform
Operators configured Vapi assistants, prompts, ElevenLabs voices, knowledge bases, Twilio/Vonage phone numbers and staged campaigns; launched calls; and reviewed transcripts, recordings, costs and progress.
02 · Campaign operations console
Lead management, activity timelines, requirement evaluation, outcome classification, timezone-aware retries, calling windows and configurable inbound webhooks.
03 · CRM orchestration service
Pipedrive lead/person ingestion, label-based outreach gating, AI call triggering, disposition writeback, rich activity notes, Google Calendar/Meet events and follow-up email.
PostgreSQL stored domain data. Redis/RQ and TaskIQ supported legacy and service-specific paths; SQS, DLQs and EventBridge handled the more mature voice workflow. Terraform provisioned ECS/Fargate, ECR, RDS, S3, ALB/ACM, KMS, secrets and logging; GitHub Actions OIDC drove rolling deployments.
Pipedrive webhook (lead / person / label)
└─► CRM Orchestration Service
└─► AI Caller API (async / sync / scheduled)
└─► Vapi call
(Twilio/Vonage number + ElevenLabs voice)
└─► Vapi webhooks
(status / end-of-call-report)
└─► Voice platform processor
├─ outcome classification
├─ stage progression
├─ private S3 recording persistence
└─ CRM callback(s)
└─► CRM orchestration callback
├─ Pipedrive labels
├─ Pipedrive activity note
└─ Calendar / Meet / emailPipedrive lead/person webhook, inbound webhook or operator creation; fetch Pipedrive contact arrays, persist locally and gate outreach using designated labels
Campaign stage, Vapi assistant, prompt, knowledge base, ElevenLabs voice and Twilio/Vonage number produce lead-aware caller configuration
Immediate, queued or scheduled worker paths protected by concurrency controls and leases
Vapi status, tool results and end-of-call reports drive classification, stage progression, voicemail detection and private S3 recording storage
Pipedrive labels and HTML activity notes, CRM callbacks, Google Calendar/Meet and email remain aligned without blocking the call path
Vapi webhooks could arrive out of order. Preliminary call-ended events were deferred until richer end-of-call reports arrived, while completion activity was upserted to avoid duplicate processing.
Async workers used local concurrency limits, shared leases tied to Vapi call IDs, retries, EventBridge-delayed requeues and SQS dead-letter paths so provider failures did not silently exhaust capacity.
Tool and function results updated lead-stage data, validated required fields and determined whether a campaign stage could advance.
Pipedrive updates preserved unrelated labels, enforced mutually exclusive AI status groups, avoided no-op writes and best-effort synchronized local state after external patches.
Temporary Vapi recording URLs were copied into private S3 storage and exposed through time-limited playback access.
Primary AI voice orchestration across both voice products. Assistants and calls were created through api.vapi.ai; IDs, statuses, transcripts, analysis, recordings, costs and tool results were persisted and processed asynchronously.
Inbound lead/person webhooks and label synchronization powered outreach gating. Call completion updated labels without overwriting unrelated state and created rich HTML activities containing summaries, transcripts, qualification data and follow-up details.
Telephony providers supplied and managed outbound phone numbers associated with Vapi phone-number IDs. Vonage was supported as an alternate configured transport.
Configurable voice synthesis option used when building assistant and Vapi call configuration.
Qualified leads could trigger calendar events, Meet links and attendee invitations, with local event records and background reminder scheduling.
Transactional email with an SMTP/SES-style fallback handled confirmations and reminders. Voice products emitted independent callback POSTs for call state, completion outcomes and retry metadata.
ECS/Fargate, ECR, RDS PostgreSQL, S3, Secrets Manager, CloudWatch, KMS and ALB/ACM were provisioned with Terraform; GitHub Actions OIDC pushed images to ECR and deployed ECS services.
Connected campaign planning, calls and CRM activity
Automated qualification and stage progression
Coordinated retries and calling windows
Handled out-of-order provider events
Created calendar and email follow-up
Deployed containerized services through infrastructure as code
Anonymized service family across the platform.
| Service | Responsibility | Stack |
|---|---|---|
| Voice Outreach Platform | Staged campaigns, Vapi calling, Twilio/Vonage numbers, operator review and CRM callbacks | Angular 19, FastAPI, PostgreSQL, Redis/SQS, AWS ECS, Terraform |
| Campaign Operations Console | Lead operations, stage evaluation, retries, calling windows and dashboards | Angular 19, FastAPI, PostgreSQL, Redis/RQ, Terraform |
| CRM Orchestration Service | Pipedrive events, label gating, AI call triggers, dispositions, Calendar/Meet and email | FastAPI, Tortoise ORM, PostgreSQL, Redis/TaskIQ, AWS ECS |
Connected campaign operations, AI voice execution and CRM follow-through in one coordinated stack
Automated qualification, stage progression, retries and calling windows
Handled out-of-order provider events with durable completion processing
Supported Twilio and Vonage telephony with ElevenLabs voice configuration
Persisted call recordings privately and orchestrated calendar and email follow-up
Deployed containerized services on AWS ECS using Terraform and GitHub Actions OIDC
AI voice workflows, asynchronous processing, CRM reconciliation, event coordination, cross-stack delivery and cloud infrastructure.
These implementation boundaries keep the public description technically honest.



A real-time backend and live-operations platform for a persistent virtual world — combining player progression, content releases, analytics and support operations across Go, NestJS, PostgreSQL, DynamoDB, Redis, NATS and Kafka.
View case study →
A resilient browser recording platform that lets users correct mistakes without starting over — coordinating screen, camera and audio capture, incremental upload, cloud processing, reversible editing, sharing, teams and billing.
View case study →
A secure physical-digital platform for artwork identity, provenance and commerce — connecting NFC-enabled physical artworks to digital records, ownership, exhibitions, auctions, subscriptions and scan analytics.
View case study →