Chuyển tới nội dung chính

6. Automation & Marketing

6.1 List Automation Rules

GET /api/v1/automation/rules

List automation workflows.

Query Parameters:

  • page - Page number
  • limit - Items per page
  • status - Filter: draft, active, paused
  • type - 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"
}