When I built the ProtectAll Claims System at Edelta Corporation, the core challenge wasn't the React frontend or the Node.js backend — it was orchestrating complex insurance claim workflows that had 12+ states, conditional transitions, multiple approver roles, and real-time notifications.
The solution: Zoho CRM Blueprint state machines integrated with AWS Lambda for heavy processing.
What is a Blueprint State Machine?
A Blueprint in Zoho CRM is a no-code/low-code workflow designer that lets you define:
- States — the stages a record can be in (e.g.,
Submitted,Under Review,Approved,Rejected) - Transitions — the allowed moves between states with conditions and actions
- Gates — mandatory fields or criteria that must be met before a transition completes
- Actions — webhooks, email notifications, or field updates triggered on transition
Think of it as a formal finite state machine, visually designed in Zoho's UI, with escape hatches via webhooks into your own infrastructure.
The ProtectAll Claims Workflow
Our claims lifecycle had these states:
Each transition had business rules: who can trigger it, what fields are required, what notifications fire.
Integrating with AWS Lambda via Webhooks
Zoho Blueprints can fire webhooks on state transitions. We routed these to our Notification & Workflow Relay service on AWS Lambda, which handled:
1. Document Generation on Approval
When a claim transitioned to Claim Approved, a webhook fired to a Lambda:
// Lambda handler (Node.js)
export const handler = async (event) => {
const { claimId, claimantName, approvedAmount } = JSON.parse(event.body);
// Generate approval PDF using dynamic template
const pdfBuffer = await generateClaimApprovalPDF({
claimId,
claimantName,
approvedAmount,
date: new Date().toISOString(),
});
// Upload to S3
const s3Key = `claims/approvals/${claimId}-approval.pdf`;
await s3.putObject({
Bucket: process.env.S3_BUCKET,
Key: s3Key,
Body: pdfBuffer,
ContentType: 'application/pdf',
}).promise();
// Store S3 URL back in Zoho CRM via API
await updateZohoRecord(claimId, {
Approval_Document_URL: `https://docs.protectall.com/${s3Key}`,
});
return { statusCode: 200, body: JSON.stringify({ success: true }) };
};
2. Multi-Channel Notifications
On Field Inspection Required, the Lambda sent:
- An email to the assigned inspector with inspection details
- A push notification to the field inspector's mobile app (React Native)
- A Zoho Desk ticket for the internal operations team
3. SLA Escalation
A daily CloudWatch scheduled Lambda checked for claims stuck in Under Review beyond the SLA threshold (72 hours) and automatically escalated them in Zoho by updating the Priority field and notifying the operations manager.
Design Patterns That Worked
Gate on Every Transition
Never let a state advance without required data. We gated Claim Approved behind:
Assessment_Amountfield filledAssessor_Sign_Offcheckbox ticked- Attached at least 1 document in the
Evidencesubform
This prevented incomplete approvals from creating downstream payment errors.
Idempotent Webhooks
Zoho retries webhooks on failure. Every Lambda handler checks a processed_events Redis set before executing. If the event was already handled, it returns 200 immediately.
const eventKey = `zoho:webhook:${event.claimId}:${event.transition}:${event.timestamp}`;
const alreadyProcessed = await redis.get(eventKey);
if (alreadyProcessed) return { statusCode: 200, body: 'Already processed' };
await redis.setex(eventKey, 86400, '1'); // 24 hour TTL
// ... process the event
Separate Zoho from Your Business Logic
Keep all business rules in your Lambda / Node.js services, not in Zoho formulas. Zoho is the state machine and UI layer — your code owns the logic. This makes testing possible.
Results
- Claim processing time dropped from ~4 days (manual) to ~1.2 days (automated routing)
- Zero missed SLA escalations since the CloudWatch scheduler went live
- Document generation went from a 2-hour manual task to ~8 seconds automated
- Field inspectors loved the mobile push notifications replacing phone calls
Zoho Blueprint + AWS Lambda is an underrated combination for enterprises that need visual workflow management without sacrificing engineering control.