• POST /auth/signup
• POST /auth/verify-email
• POST /auth/login
{
eventType: "USER_SIGNUP",
userId: 123,
email: "user@example.com",
ipAddress: "192.168.1.1",
timestamp: "2025-10-21T10:30:00Z",
consentGiven: true,
privacyPolicyVersion: "v1.0"
}
The complete diagram continues with:
Each step follows this exact 5-lane swim lane structure.
{
"provider": "gmail|outlook|smtp",
"emailAddress": "support@company.com",
"displayName": "Company Support",
"signature": "HTML email signature",
"autoReply": {
"enabled": true,
"template": "Thank you for contacting us...",
"businessHoursOnly": true
},
"threading": {
"enabled": true,
"maxThreadDepth": 10
},
"filters": {
"spamFiltering": true,
"blockedDomains": ["spam.com"],
"requiredSubjectKeywords": []
},
"smtp": {
"host": "smtp.gmail.com",
"port": 587,
"encryption": "tls"
}
}
{
"botUsername": "@companybot",
"welcomeMessage": "Welcome! How can I help you?",
"commands": [
{"command": "/start", "description": "Start conversation"},
{"command": "/help", "description": "Get help"}
],
"inlineKeyboard": {
"enabled": true,
"buttons": [
{"text": "Contact Support", "callback_data": "support"}
]
},
"mediaHandling": {
"allowPhotos": true,
"allowDocuments": true,
"maxFileSize": 20971520
}
}
{
"profileId": "urn:li:person:xxxxx",
"companyPageId": "urn:li:organization:xxxxx",
"autoAcceptConnections": false,
"welcomeMessage": "Thanks for connecting!",
"rateLimits": {
"maxMessagesPerDay": 100,
"maxConnectionRequestsPerWeek": 100
},
"profileEnrichment": {
"fetchJobTitle": true,
"fetchCompany": true
}
}
// Shopify
{
"shopDomain": "mystore.myshopify.com",
"notifications": {
"orderCreated": {"enabled": true, "template": "Order confirmed"},
"orderShipped": {"enabled": true, "includeTracking": true},
"abandonedCart": {"enabled": true, "delayMinutes": 60}
}
}
// Stripe
{
"accountId": "acct_xxxxx",
"notifications": {
"paymentSucceeded": {"enabled": true},
"paymentFailed": {"enabled": true, "alertTeam": true},
"subscriptionRenewal": {"daysBeforeRenewal": 7}
}
}
// PayPal
{
"merchantId": "merchant_xxxxx",
"environment": "live|sandbox",
"notifications": {
"paymentCompleted": {"enabled": true},
"disputeCreated": {"alertTeam": true}
}
}
// Calendly
{
"organizationUri": "https://api.calendly.com/organizations/xxxxx",
"notifications": {
"bookingConfirmed": {
"enabled": true,
"sendReminders": true,
"reminderMinutesBefore": [1440, 60]
}
}
}
// Zoom
{
"accountId": "xxxxx",
"notifications": {
"meetingScheduled": {"enabled": true, "includeJoinLink": true},
"recordingAvailable": {"enabled": true, "expiryDays": 30},
"meetingReminder": {"minutesBefore": [60, 15]}
},
"meetingDefaults": {
"autoRecording": "cloud",
"waitingRoom": true
}
}
<head> or <body>@UseGuards(DomainAllowlistGuard)
CREATE UNIQUE INDEX idx_widget_domain ON widget_domains(widgetId, domain);
CREATE UNIQUE INDEX idx_conversation_label ON conversation_label_assignments(conversationId, labelId);
CREATE INDEX idx_conversation_labels_lookup ON conversation_label_assignments(conversationId);
User explores automation library
User chooses template to activate
User customizes automation conditions
User enables and tests automation
Backend Services Containers
Database Tables
Event Processing Queues
Scheduled & Event-Driven Tasks
Caching & Rate Limiting
Monitoring & Logging
Template Assets & Exports
External API Keys
CREATE UNIQUE INDEX idx_template_industry ON template_industry_mapping(templateId, industryId);
CREATE INDEX idx_industry_templates_lookup ON template_industry_mapping(industryId, relevanceScore DESC);