Shopify
Create Shopify Draft Order
Creates a draft order for a customer with one custom line item.
Unverified
What the model is told
Create a draft order in Shopify, for example to hold an agreed custom item or quote for a customer. Confirm the email address, item description, unit price and quantity with the customer before calling. This does not take payment or send anything to the customer. It returns the draft order name, ID and an invoice URL that staff can use. Tell the customer the team will follow up.
Request
POSThttps://YOUR_SHOP.myshopify.com/admin/api/2026-10/graphql.json
Headers
Content-Typeapplication/jsonX-Shopify-Access-TokenYOUR_SHOPIFY_ADMIN_ACCESS_TOKEN
Body
{
"query": "mutation($email: String!, $title: String!, $note: String) { draftOrderCreate(input: { email: $email, note: $note, lineItems: [{ title: $title, originalUnitPrice: \"{{price}}\", quantity: {{quantity}} }] }) { draftOrder { id name invoiceUrl } userErrors { field message } } }",
"variables": {
"email": "{{email}}",
"title": "{{title}}",
"note": "{{note}}"
}
}Parameters
email stringThe customer's email address.title stringA short description of the item.price stringThe unit price as a decimal number in the shop currency, without a currency symbol.quantity numberHow many of the item.note stringA note for staff about the request.
Engage payload
{
"source": "VOICE_AI",
"tool": {
"id": "2ea3639e-d3d1-4401-9e19-1110377fe836",
"type": "HTTP_REQUEST",
"label": "Create Shopify Draft Order",
"name": "create_shopify_draft_order",
"customName": false,
"description": "Create a draft order in Shopify, for example to hold an agreed custom item or quote for a customer. Confirm the email address, item description, unit price and quantity with the customer before calling. This does not take payment or send anything to the customer. It returns the draft order name, ID and an invoice URL that staff can use. Tell the customer the team will follow up.",
"parameters": [
{
"name": "email",
"type": "string",
"description": "The customer's email address."
},
{
"name": "title",
"type": "string",
"description": "A short description of the item."
},
{
"name": "price",
"type": "string",
"description": "The unit price as a decimal number in the shop currency, without a currency symbol."
},
{
"name": "quantity",
"type": "number",
"description": "How many of the item."
},
{
"name": "note",
"type": "string",
"description": "A note for staff about the request."
}
],
"config": {
"endpoint": {
"method": "POST",
"url": "https://YOUR_SHOP.myshopify.com/admin/api/2026-10/graphql.json"
},
"headers": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "X-Shopify-Access-Token",
"value": "YOUR_SHOPIFY_ADMIN_ACCESS_TOKEN"
}
],
"body": "{\n \"query\": \"mutation($email: String!, $title: String!, $note: String) { draftOrderCreate(input: { email: $email, note: $note, lineItems: [{ title: $title, originalUnitPrice: \\\"{{price}}\\\", quantity: {{quantity}} }] }) { draftOrder { id name invoiceUrl } userErrors { field message } } }\",\n \"variables\": {\n \"email\": \"{{email}}\",\n \"title\": \"{{title}}\",\n \"note\": \"{{note}}\"\n }\n}",
"timeout": null
}
}
}IDs are regenerated on every copy.