Objective: Automate the process of capturing customer orders using conversational AI, enriching data, validating, and saving into backend systems.
Workflow Design:
Trigger: User Interaction Initiation
- Trigger Node: Webhook
- Accepts incoming requests from your chatbot or conversational front-end (e.g., WhatsApp, website chat widget, or voice service integrated with Dialogflow or Twilio).
- Example payload:
{
“customerId”: “12345”,
“intent”: “PlaceOrder”,
“items”: [“ProductA”, “ProductB”],
“quantity”: [2, 1]
}
Fetch Customer Profile (optional enrichment)
- HTTP Request Node: Retrieve customer details from CRM API:
GET https://crm.example.com/api/customers/12345
Validate Inventory
- HTTP Request Node:
Query inventory system API to check availability of requested products:
POST https://inventory.example.com/check
GPT-based Confirmation Draft (optional)
- OpenAI Node:
Generate a human-like confirmation message for customer approval:
Prompt:
“Generate a polite message confirming order for {{items}} with quantities {{quantities}}, total price {{totalPrice}}.”
Conditional Branch: Stock Availability
- IF Node:
Check stock status for all requested products.
Create Order in Order Management System (OMS)
- HTTP Request Node:
Send a POST request to create the order:
POST https://oms.example.com/orders
Example payload:
{
“customerId”: “12345”,
“orderItems”: [{“product”: “ProductA”, “qty”: 2}, {“product”: “ProductB”, “qty”: 1}],
“total”: “150.00”
}
Send Order Confirmation to Customer
- HTTP Request or Messaging Node:
- Email: Send Email Node
- WhatsApp: WhatsApp API Node
- SMS: Twilio Node
Handle Failures
- If inventory not available → Notify customer gracefully.
Example Workflow Flowchart:


{
“name”: “AI-Driven Order Capture”,
“nodes”: [
{
“parameters”: {
“httpMethod”: “POST”,
“path”: “order-capture”
},
“name”: “Webhook Trigger”,
“type”: “n8n-nodes-base.webhook”,
“typeVersion”: 1,
“position”: [
200,
300
]
},
{
“parameters”: {
“requestMethod”: “GET”,
“url”: “https://crm.example.com/api/customers/{{$json[\”customerId\”]}}”,
“jsonParameters”: true
},
“name”: “Fetch CRM Profile”,
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 1,
“position”: [
400,
300
]
},
{
“parameters”: {
“requestMethod”: “POST”,
“url”: “https://inventory.example.com/check”,
“jsonParameters”: true,
“bodyParametersJson”: “{\”items\”: \”{{$json[\”items\”]}}\”}”
},
“name”: “Check Inventory”,
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 1,
“position”: [
600,
300
]
},
{
“parameters”: {
“model”: “gpt-3.5-turbo”,
“prompt”: “Generate a polite confirmation for {{$json[\”items\”]}} ordered by {{$json[\”name\”]}}.”
},
“name”: “GPT Confirmation”,
“type”: “n8n-nodes-base.openAi”,
“typeVersion”: 1,
“position”: [
800,
300
]
},
{
“parameters”: {
“conditions”: {
“boolean”: [
{
“value1”: “={{$json[\”inStock\”]}}”,
“value2”: “true”
}
]
}
},
“name”: “Check Stock Availability”,
“type”: “n8n-nodes-base.if”,
“typeVersion”: 1,
“position”: [
1000,
300
]
},
{
“parameters”: {
“requestMethod”: “POST”,
“url”: “https://oms.example.com/orders”,
“jsonParameters”: true,
“bodyParametersJson”: “{\”customerId\”: \”{{$json[\”customerId\”]}}\”, \”orderItems\”: {{$json[\”items\”]}}, \”total\”: \”{{$json[\”total\”]}}\”}”
},
“name”: “Create Order”,
“type”: “n8n-nodes-base.httpRequest”,
“typeVersion”: 1,
“position”: [
1200,
250
]
},
{
“parameters”: {
“subject”: “Order Confirmation”,
“text”: “Your order has been successfully placed.”,
“toEmail”: “={{$json[\”email\”]}}”
},
“name”: “Send Confirmation Email”,
“type”: “n8n-nodes-base.emailSend”,
“typeVersion”: 1,
“position”: [
1400,
250
]
},
{
“parameters”: {
“subject”: “Stock Issue”,
“text”: “Sorry, one or more items in your order are out of stock.”,
“toEmail”: “={{$json[\”email\”]}}”
},
“name”: “Notify Stock Unavailable”,
“type”: “n8n-nodes-base.emailSend”,
“typeVersion”: 1,
“position”: [
1200,
350
]
}
],
“connections”: {
“Webhook Trigger”: {
“main”: [
[
{
“node”: “Fetch CRM Profile”,
“type”: “main”,
“index”: 0
}
]
]
},
“Fetch CRM Profile”: {
“main”: [
[
{
“node”: “Check Inventory”,
“type”: “main”,
“index”: 0
}
]
]
},
“Check Inventory”: {
“main”: [
[
{
“node”: “GPT Confirmation”,
“type”: “main”,
“index”: 0
}
]
]
},
“GPT Confirmation”: {
“main”: [
[
{
“node”: “Check Stock Availability”,
“type”: “main”,
“index”: 0
}
]
]
},
“Check Stock Availability”: {
“main”: [
[
{
“node”: “Create Order”,
“type”: “main”,
“index”: 0
}
],
[
{
“node”: “Notify Stock Unavailable”,
“type”: “main”,
“index”: 0
}
]
]
},
“Create Order”: {
“main”: [
[
{
“node”: “Send Confirmation Email”,
“type”: “main”,
“index”: 0
}
]
]
}
} }