Kollect
Serverless Order Processing
We replaced Kollect's legacy Zapier workflows with a custom AWS Lambda + Salesforce integration - cutting order processing time by over 50% and achieving 99.9% reliability.
Fully serverless - single Lambda function with internal routing across 4 endpoints
The Impact
From fragile Zapier chains to a production-grade serverless pipeline.
The Challenge
Kollect's online booking system relied on Zapier to bridge their website, Stripe payments, and Salesforce CRM. As order volume grew, the cracks became impossible to ignore.
Zapier webhooks would intermittently fail, causing paid orders to never appear in Salesforce. The multi-step flow took 30-60 seconds to process - well beyond acceptable checkout response times. Each order triggered 5-7 Zapier tasks, driving up costs.
When failures occurred, there was no automated alerting. Failed orders were discovered hours or days later through customer complaints. Adding new fields or changing business logic meant navigating Zapier's visual editor across multiple connected Zaps.
They needed a faster, more reliable, and cost-effective solution that could handle their complete order flow: from customer-facing pricing and payment, through to CRM record creation across multiple objects.
The Solution
A fully serverless order processing system on AWS that directly integrates the frontend with Stripe and Salesforce - eliminating the Zapier dependency entirely.
Real-Time Pricing
Cascading dropdowns (County, Town, Size) fetch live pricing from Salesforce custom objects via a dedicated Lambda - customers always see current rates.
Customer Identity Resolution
Dual-platform lookup across Stripe and Salesforce by email or phone - creates or updates records to maintain a single source of truth.
Secure Payments
Stripe Elements handles card input entirely client-side - card details never touch our servers. Payment confirmation triggers order processing.
4-Object CRM Creation
After payment, a chain of related Salesforce records is created: Account, Work Order, Payment, and Junction record - all linked and fully populated.
Parallel Processing
Independent operations run concurrently with Promise.all, saving 6+ seconds per order and keeping total processing under API Gateway's timeout limit.
Instant Failure Alerts
Every API call is wrapped in error handling with Slack notifications. If any step fails after payment, the team is alerted within seconds with full context.
The Results
Before vs. After
- ✗ 30-60 second order processing time
- ✗ Frequent timeout errors (>29s limit)
- ✗ ~90% end-to-end reliability
- ✗ Failed orders discovered hours or days later
- ✗ 5-7 Zapier tasks per order (growing costs)
- ✗ Manual reconciliation against Stripe
- ✓ 8-27 second order processing time
- ✓ Zero timeout errors - fully within limits
- ✓ ~99.9% end-to-end reliability
- ✓ Instant Slack alerts on any failure
- ✓ Single Lambda function - minimal costs
- ✓ Automatic CRM record creation
Built for Reliability
A single Lambda function with internal routing handles all 4 endpoints. JWT authentication, parallel processing, and graceful error handling ensure every paid order is captured.
JWT Bearer Authentication
RSA-signed JWT assertions exchanged for access tokens - no stored passwords, with in-memory token caching and automatic refresh.
Graceful Error Handling
Non-critical failures continue processing. Critical failures halt but preserve payment. No paid order is ever lost.
Multi-Service Support
Architecture supports Junk Removal, Skip Hire, and Skip Bag services with service-specific fields and routing.
Key Takeaways
What we learned building production-grade serverless infrastructure for order processing.
Serverless Fits Transactional Workflows
Lambda's pay-per-invocation model is ideal for order processing that happens in bursts - no idle server costs, instant scaling.
Parallel API Calls Matter
Running independent operations concurrently saved 6+ seconds per order - the difference between a working checkout and a timeout error.
Instant Alerting is Non-Negotiable
When real money is involved, instant failure visibility prevents lost revenue and customer complaints. Slack alerts catch every edge case.
Direct Integration Outperforms No-Code
While Zapier is great for prototyping, a custom integration delivers better performance, reliability, and cost efficiency at scale.
Need a custom integration?
Whether it's replacing no-code tools, building serverless pipelines, or connecting your CRM - we build production-grade systems that scale.
Book a CallAlso see: Kollect Marketing Case Study - how we scaled their paid advertising and SEO.