6. Automation & Marketing
6.1 List Automation Rules
GET /api/v1/automation/rules
List automation workflows.
Query Parameters:
page- Page numberlimit- Items per pagestatus- Filter:draft,active,pausedtype- Filter by rule type
Response:
{
"data": [
{
"id": "rule-001",
"name": "Welcome New Leads",
"description": "Send welcome message to new leads",
"type": "sequence",
"trigger": {
"type": "contact_created",
"conditions": [{ "field": "source", "operator": "equals", "value": "zalo" }]
},
"actions": [
{
"type": "send_message",
"template": "welcome_message"
}
],
"status": "active",
"createdAt": "2026-05-01T10:00:00Z"
}
],
"pagination": { "total": 12, "page": 1, "limit": 50 }
}
6.2 Create Automation Rule
POST /api/v1/automation/rules
Create new automation workflow.
Request Body:
{
"name": "High-Value Lead Alert",
"description": "Notify team when high-value lead is created",
"type": "sequence",
"trigger": {
"type": "contact_created",
"conditions": [
{ "field": "leadScore", "operator": "gte", "value": 80 }
]
},
"actions": [
{
"type": "send_notification",
"template": "high_value_alert"
},
{
"type": "assign_user",
"userId": "user-125"
}
]
}
Response: 201
{
"id": "rule-002",
"name": "High-Value Lead Alert",
"status": "draft",
"createdAt": "2026-06-05T17:35:00Z"
}
6.3 List Message Templates
GET /api/v1/automation/templates
List saved message templates.
Response:
[
{
"id": "tpl-001",
"name": "Welcome Message",
"content": "Hi {{contactName}}, welcome to our service!",
"category": "greeting",
"variables": ["contactName"],
"createdAt": "2026-05-01T10:00:00Z"
}
]
6.4 Create Message Template
POST /api/v1/automation/templates
Create new message template with variables.
Request Body:
{
"name": "Special Offer",
"content": "Hi {{contactName}}, we have a special offer just for you: {{offerDetails}}",
"category": "offer",
"variables": ["contactName", "offerDetails"]
}
Response: 201
{
"id": "tpl-002",
"name": "Special Offer",
"createdAt": "2026-06-05T17:35:00Z"
}
6.5 List Customer Lists
GET /api/v1/customer-lists
List audience segments.
Response:
[
{
"id": "list-001",
"name": "Hot Leads - June",
"description": "Leads with score > 80",
"contactCount": 150,
"status": "active",
"createdAt": "2026-06-01T10:00:00Z"
}
]
6.6 Create Customer List
POST /api/v1/customer-lists
Create new audience/segment.
Request Body:
{
"name": "VIP Customers",
"description": "Customers with purchase history > $5000",
"criteria": {
"filters": [
{ "field": "status", "operator": "equals", "value": "customer" },
{ "field": "leadScore", "operator": "gte", "value": 85 }
]
}
}
Response: 201
{
"id": "list-002",
"name": "VIP Customers",
"status": "draft",
"createdAt": "2026-06-05T17:35:00Z"
}
6.7 Add Entry to Customer List
POST /api/v1/customer-lists/:id/entries
Add contact to customer list.
Request Body:
{
"contactId": "contact-001"
}
Response: 201
{
"id": "entry-001",
"listId": "list-002",
"contactId": "contact-001",
"addedAt": "2026-06-05T17:35:00Z"
}
6.8 List Campaigns
GET /api/v1/campaigns
List marketing campaigns.
Response:
[
{
"id": "campaign-001",
"name": "Summer Promotion",
"type": "email",
"status": "active",
"contactCount": 500,
"sentCount": 350,
"openRate": 0.42,
"createdAt": "2026-06-01T10:00:00Z"
}
]
6.9 Create Campaign
POST /api/v1/campaigns
Create new marketing campaign.
Request Body:
{
"name": "July Sale Campaign",
"description": "Announce July sale to all customers",
"type": "broadcast",
"listId": "list-001",
"templateId": "tpl-001",
"schedule": "2026-07-01T08:00:00Z",
"variables": {
"discount": "30%"
}
}
Response: 201
{
"id": "campaign-002",
"name": "July Sale Campaign",
"status": "draft",
"createdAt": "2026-06-05T17:35:00Z"
}