Skip to content
FlexiPedia logo

Shopify Native Triggers

Unlock the full potential of your Shopify store with Flexito OmniAI's seamless native webhook integration. Simplify your workflow, avoid common webhook issues, and enjoy efficient automation with Shopify triggers designed to enhance your business operations. Shopify Triggers Flex

Flexito OmniAI
Beginnerv4
Read in:

Listen to an audio overview

A short, AI-generated podcast-style summary of this article.

Unlock the full potential of your Shopify store with Flexito OmniAI's seamless native webhook integration. Simplify your workflow, avoid common webhook issues, and enjoy efficient automation with Shopify triggers designed to enhance your business operations.

Shopify Triggers

Flexito OmniAI now offers direct webhook integration with Shopify. This native integration eliminates the need for inbound webhooks, overcoming limitations and issues such as webhook removal from the Shopify store, unresponsive payloads, and empty data.

Reconnecting with Shopify

Reconnecting with Shopify is crucial for this update to function. Follow these steps to establish the connection:

In your Workspace dashboard, click on Integrations, then select Shopify. Click the Save button to re-establish your connection.

Locating and Using Shopify Triggers Once inside your bot, follow these steps to locate and utilise the triggers.

Select Automation from the left-hand scroll bar, then choose Triggers from the top menu.

Click on “New Trigger” and scroll down to find and select Shopify Webhook.

Native Webhook Actions

Flexito OmniAI currently supports the following native actions.

How to Utilise the Triggers

Refer to the visual guide below for instructions on using the triggers.

After entering the details and mapping the variables, attach the trigger to a subflow as shown:

You are now ready to use the triggers.

Triggers and Response Payloads

Cart Abandoned

The Cart Abandoned trigger activates when a customer enters billing details but does not proceed to the payment page or complete the payment.

The response payload provides details such as cart items, total amount, and the checkout page URL.

The response payload returns the following JSON format.

{
"id": ,
"token": "5f47abde83b5d4a079cd5489c9bc6fa2",
"buyer_accepts_marketing": false,
"buyer_accepts_sms_marketing": false,
"created_at": "T04:56:22+00:00",
"updated_at": "T00:57:03-04:00",
"note": "f12372u",
"taxes_included": false,
"total_weight": 0,
"currency": "AUD",
"phone": "",
"customer_locale": "en",
"line_items": [
{
"key": "",
"fulfillment_service": "manual",
"gift_card": false,
"grams": 0,
"presentment_variant_title": "Black",
"product_id": ,
"quantity": 1,
"requires_shipping": true,
"sku": "",
"taxable": false,
"title": "Pink Leather Quartz Watch",
"variant_id": ,
"variant_title": "Black",
"variant_price": "14.99",
"vendor": "hapans",
"line_price": "14.99",
"price": "14.99"
}
],
"name": "#",
"source_name": "",
"total_line_items_price": "14.99",
"total_tax": "0.00",
"total_discounts": "0.00",
"subtotal_price": "14.99",
"total_price": "34.99",
"total_duties": "0.00",
"billing_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
},
"customer": {
"id": ,
"accepts_marketing": false,
"last_name": "Siddiqui",
"orders_count": 6,
"state": "disabled",
"total_spent": "204.59",
"last_order_id": ,
"verified_email": true,
"tax_exempt": false,
"phone": "",
"currency": "AUD",
"default_address": {
"customer_id": ,
"last_name": "Siddiqui",
"address1": "test",
"city": "test",
"country": "Pakistan",
"zip": "78601",
"name": "Siddiqui",
"country_code": "PK",
"country_name": "Pakistan",
"default": true
}
}
}

Note: The cart abandoned webhook has a default minimum trigger time of 30 minutes.

Order Creation (Cash On Delivery & Credit Card)

This webhook activates when a checkout is completed and an order is placed. The key difference is that orders via Cash on Delivery are marked unpaid by default, while those via credit card are marked as paid.

The response payload returns the following JSON format.

{
"id": ,
"app_id": ,
"browser_ip": "",
"buyer_accepts_marketing": false,
"checkout_id": ,
"checkout_token": "3bc1c679e0283b3c8c7d5da0",
"confirmed": true,
"created_at": "T23:16:50-04:00",
"currency": "AUD",
"current_subtotal_price": "24.87",
"current_total_discounts": "0.00",
"current_total_price": "44.87",
"current_total_tax": "0.00",
"customer_locale": "en",
"estimated_taxes": false,
"financial_status": "pending",
"gateway": "Cash on Delivery (COD)",
"location_id": ,
"name": "#1044",
"note": "f12372u",
"number": 44,
"order_number": 1044,
"order_status_url": " ",
"payment_gateway_names": [
"Cash on Delivery (COD)"
],
"phone": "",
"processed_at": "T23:16:49-04:00",
"processing_method": "manual",
"reference": "a05cd2354ace3fe1e3c161553",
"source_identifier": "a05cd2354ace3fe1e3c161553",
"source_name": "",
"subtotal_price": "24.87",
"taxes_included": false,
"test": false,
"token": "de745afb0f9e4ce033d41035ddd1f58c",
"total_discounts": "0.00",
"total_line_items_price": "24.87",
"total_outstanding": "44.87",
"total_price": "44.87",
"total_price_usd": "29.86",
"total_tax": "0.00",
"total_tip_received": "0.00",
"total_weight": 0,
"updated_at": "T23:16:50-04:00",
"billing_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
},
"customer": {
"id": ,
"accepts_marketing": false,
"created_at": "T18:09:49-04:00",
"updated_at": "T23:16:50-04:00",
"last_name": "Siddiqui",
"state": "disabled",
"verified_email": true,
"tax_exempt": false,
"phone": "",
"sms_marketing_consent": {
"state": "not_subscribed",
"opt_in_level": "single_opt_in",
"consent_collected_from": "SHOPIFY"
},
"currency": "AUD",
"accepts_marketing_updated_at": "T23:16:50-04:00",
"default_address": {
"id": ,
"customer_id": ,
"last_name": "Siddiqui",
"address1": "test",
"city": "test",
"country": "Pakistan",
"zip": "78601",
"name": "Siddiqui",
"country_code": "PK",
"country_name": "Pakistan",
"default": true
}
},
"line_items": [
{
"id": ,
"fulfillable_quantity": 1,
"fulfillment_service": "manual",
"gift_card": false,
"grams": 0,
"name": "Classic Nato Strap Watch - CH 0221",
"price": "24.87",
"product_exists": true,
"product_id": ,
"quantity": 1,
"requires_shipping": true,
"sku": "-ch-0221",
"taxable": false,
"title": "Classic Nato Strap Watch",
"total_discount": "0.00",
"total_discount_set": {
"shop_money": {
"amount": "0.00",
"currency_code": "AUD"
},
"presentment_money": {
"amount": "0.00",
"currency_code": "AUD"
}
},
"variant_id": ,
"variant_inventory_management": "shopify",
"variant_title": "CH 0221",
"vendor": "hapans"
}
],
"shipping_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
}
}

Order Cancelled

This webhook triggers when an order is cancelled from the Shopify admin console.

The response payload returns the following JSON format.

{
"id": ,
"app_id": ,
"browser_ip": "",
"buyer_accepts_marketing": false,
"cancel_reason": "customer",
"cancelled_at": "T00:50:11-04:00",
"checkout_id": ,
"checkout_token": "d30a2d9c71d12d4ff8a154b4b140774e",
"closed_at": "T00:50:10-04:00",
"confirmed": true,
"created_at": "T22:46:04-04:00",
"currency": "AUD",
"current_subtotal_price": "0.00",
"current_total_discounts": "0.00",
"current_total_price": "0.00",
"current_total_tax": "0.00",
"customer_locale": "en",
"estimated_taxes": false,
"financial_status": "voided",
"gateway": "Cash on Delivery (COD)",
"location_id": ,
"name": "#1041",
"note": "f12372u",
"number": 41,
"order_number": 1041,
"order_status_url": " ",
"payment_gateway_names": [
"Cash on Delivery (COD)"
],
"phone": "",
"processed_at": "T22:46:02-04:00",
"processing_method": "manual",
"reference": "934715d25490a701d19d0afb46e2e73a",
"source_identifier": "934715d25490a701d19d0afb46e2e73a",
"source_name": "",
"subtotal_price": "24.87",
"taxes_included": false,
"test": false,
"token": "3e7b990cb48fbfdfd11cb8",
"total_discounts": "0.00",
"total_line_items_price": "24.87",
"total_outstanding": "0.00",
"total_price": "44.87",
"total_price_usd": "29.86",
"total_tax": "0.00",
"total_tip_received": "0.00",
"total_weight": 0,
"updated_at": "T00:50:11-04:00",
"billing_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
},
"customer": {
"id": ,
"accepts_marketing": false,
"created_at": "T18:09:49-04:00",
"updated_at": "T23:16:50-04:00",
"last_name": "Siddiqui",
"state": "disabled",
"verified_email": true,
"tax_exempt": false,
"phone": "",
"sms_marketing_consent": {
"state": "not_subscribed",
"opt_in_level": "single_opt_in",
"consent_collected_from": "SHOPIFY"
},
"currency": "AUD",
"accepts_marketing_updated_at": "T23:16:50-04:00",
"default_address": {
"id": ,
"customer_id": ,
"last_name": "Siddiqui",
"address1": "test",
"city": "test",
"country": "Pakistan",
"zip": "78601",
"name": "Siddiqui",
"country_code": "PK",
"country_name": "Pakistan",
"default": true
}
},
"line_items": [
{
"id": ,
"fulfillable_quantity": 0,
"fulfillment_service": "manual",
"gift_card": false,
"grams": 0,
"name": "Classic Nato Strap Watch - CH 0222",
"price": "24.87",
"product_exists": true,
"product_id": ,
"quantity": 1,
"requires_shipping": true,
"sku": "-ch-0222",
"taxable": false,
"title": "Classic Nato Strap Watch",
"total_discount": "0.00",
"total_discount_set": {
"shop_money": {
"amount": "0.00",
"currency_code": "AUD"
},
"presentment_money": {
"amount": "0.00",
"currency_code": "AUD"
}
},
"variant_id": ,
"variant_inventory_management": "shopify",
"variant_title": "CH 0222",
"vendor": "hapans"
}
],
"shipping_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
}
}

Order Paid

This webhook activates when an order is marked as paid from the Shopify admin console.

The response payload returns the following JSON format.

{
"id": ,
"app_id": ,
"browser_ip": "",
"buyer_accepts_marketing": false,
"checkout_id": ,
"checkout_token": "3bc1c679e0283b3c8c7d5da0",
"confirmed": true,
"created_at": "T23:16:50-04:00",
"currency": "AUD",
"current_subtotal_price": "24.87",
"current_total_discounts": "0.00",
"current_total_price": "44.87",
"current_total_tax": "0.00",
"customer_locale": "en",
"estimated_taxes": false,
"financial_status": "paid",
"gateway": "Cash on Delivery (COD)",
"location_id": ,
"name": "#1044",
"note": "f12372u",
"number": 44,
"order_number": 1044,
"order_status_url": " ",
"payment_gateway_names": [
"Cash on Delivery (COD)"
],
"phone": "",
"processed_at": "T23:16:49-04:00",
"processing_method": "manual",
"reference": "a05cd2354ace3fe1e3c161553",
"source_identifier": "a05cd2354ace3fe1e3c161553",
"source_name": "",
"subtotal_price": "24.87",
"taxes_included": false,
"test": false,
"token": "de745afb0f9e4ce033d41035ddd1f58c",
"total_discounts": "0.00",
"total_line_items_price": "24.87",
"total_outstanding": "0.00",
"total_price": "44.87",
"total_price_usd": "29.86",
"total_tax": "0.00",
"total_tip_received": "0.00",
"total_weight": 0,
"updated_at": "T00:42:02-04:00",
"billing_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
},
"customer": {
"id": ,
"accepts_marketing": false,
"created_at": "T18:09:49-04:00",
"updated_at": "T23:16:50-04:00",
"last_name": "Siddiqui",
"state": "disabled",
"verified_email": true,
"tax_exempt": false,
"phone": "",
"sms_marketing_consent": {
"state": "not_subscribed",
"opt_in_level": "single_opt_in",
"consent_collected_from": "SHOPIFY"
},
"currency": "AUD",
"accepts_marketing_updated_at": "T23:16:50-04:00",
"default_address": {
"id": ,
"customer_id": ,
"last_name": "Siddiqui",
"address1": "test",
"city": "test",
"country": "Pakistan",
"zip": "78601",
"name": "Siddiqui",
"country_code": "PK",
"country_name": "Pakistan",
"default": true
}
},
"line_items": [
{
"id": ,
"fulfillable_quantity": 1,
"fulfillment_service": "manual",
"gift_card": false,
"grams": 0,
"name": "Classic Nato Strap Watch - CH 0221",
"price": "24.87",
"product_exists": true,
"product_id": ,
"quantity": 1,
"requires_shipping": true,
"sku": "-ch-0221",
"taxable": false,
"title": "Classic Nato Strap Watch",
"total_discount": "0.00",
"total_discount_set": {
"shop_money": {
"amount": "0.00",
"currency_code": "AUD"
},
"presentment_money": {
"amount": "0.00",
"currency_code": "AUD"
}
},
"variant_id": ,
"variant_inventory_management": "shopify",
"variant_title": "CH 0221",
"vendor": "hapans"
}
],
"shipping_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
}
}

Order Fulfilled

This webhook triggers when an order is fulfilled from the Shopify admin console, providing details like order information and shipping tracking.

The response payload returns the following JSON format.

{
"id": ,
"app_id": ,
"browser_ip": "",
"buyer_accepts_marketing": false,
"checkout_id": ,
"checkout_token": "3bc1c679e0283b3c8c7d5da0",
"closed_at": "T00:47:58-04:00",
"confirmed": true,
"created_at": "T23:16:50-04:00",
"currency": "AUD",
"current_subtotal_price": "24.87",
"current_total_discounts": "0.00",
"current_total_price": "44.87",
"current_total_tax": "0.00",
"customer_locale": "en",
"estimated_taxes": false,
"financial_status": "paid",
"fulfillment_status": "fulfilled",
"gateway": "Cash on Delivery (COD)",
"location_id": ,
"name": "#1044",
"note": "f12372u",
"number": 44,
"order_number": 1044,
"order_status_url": " ",
"payment_gateway_names": [
"Cash on Delivery (COD)"
],
"phone": "",
"processed_at": "T23:16:49-04:00",
"processing_method": "manual",
"reference": "a05cd2354ace3fe1e3c161553",
"source_identifier": "a05cd2354ace3fe1e3c161553",
"source_name": "",
"subtotal_price": "24.87",
"taxes_included": false,
"test": false,
"token": "de745afb0f9e4ce033d41035ddd1f58c",
"total_discounts": "0.00",
"total_line_items_price": "24.87",
"total_outstanding": "0.00",
"total_price": "44.87",
"total_price_usd": "29.86",
"total_tax": "0.00",
"total_tip_received": "0.00",
"total_weight": 0,
"updated_at": "T00:47:58-04:00",
"billing_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
},
"customer": {
"id": ,
"accepts_marketing": false,
"created_at": "T18:09:49-04:00",
"updated_at": "T23:16:50-04:00",
"last_name": "Siddiqui",
"state": "disabled",
"verified_email": true,
"tax_exempt": false,
"phone": "",
"sms_marketing_consent": {
"state": "not_subscribed",
"opt_in_level": "single_opt_in",
"consent_collected_from": "SHOPIFY"
},
"currency": "AUD",
"accepts_marketing_updated_at": "T23:16:50-04:00",
"default_address": {
"id": ,
"customer_id": ,
"last_name": "Siddiqui",
"address1": "test",
"city": "test",
"country": "Pakistan",
"zip": "78601",
"name": "Siddiqui",
"country_code": "PK",
"country_name": "Pakistan",
"default": true
}
},
"fulfillments": [
{
"id": ,
"created_at": "T00:47:58-04:00",
"location_id": ,
"name": "#1044.1",
"order_id": ,
"service": "manual",
"status": "success",
"tracking_company": "Bonds",
"tracking_number": "",
"tracking_numbers": [
""
],
"tracking_url": " ",
"tracking_urls": [
" "
],
"updated_at": "T00:47:58-04:00",
"line_items": [
{
"id": ,
"fulfillable_quantity": 0,
"fulfillment_service": "manual",
"fulfillment_status": "fulfilled",
"gift_card": false,
"grams": 0,
"name": "Classic Nato Strap Watch - CH 0221",
"price": "24.87",
"product_exists": true,
"product_id": ,
"quantity": 1,
"requires_shipping": true,
"sku": "-ch-0221",
"taxable": false,
"title": "Classic Nato Strap Watch",
"total_discount": "0.00",
"total_discount_set": {
"shop_money": {
"amount": "0.00",
"currency_code": "AUD"
},
"presentment_money": {
"amount": "0.00",
"currency_code": "AUD"
}
},
"variant_id": ,
"variant_inventory_management": "shopify",
"variant_title": "CH 0221",
"vendor": "hapans"
}
]
}
],
"line_items": [
{
"id": ,
"fulfillable_quantity": 0,
"fulfillment_service": "manual",
"fulfillment_status": "fulfilled",
"gift_card": false,
"grams": 0,
"name": "Classic Nato Strap Watch - CH 0221",
"price": "24.87",
"product_exists": true,
"product_id": ,
"quantity": 1,
"requires_shipping": true,
"sku": "-ch-0221",
"taxable": false,
"title": "Classic Nato Strap Watch",
"total_discount": "0.00",
"total_discount_set": {
"shop_money": {
"amount": "0.00",
"currency_code": "AUD"
},
"presentment_money": {
"amount": "0.00",
"currency_code": "AUD"
}
},
"variant_id": ,
"variant_inventory_management": "shopify",
"variant_title": "CH 0221",
"vendor": "hapans"
}
],
"shipping_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
}
}

Draft Order Creation

This webhook triggers when a draft order is created either via an API call through the bot or directly from the Shopify admin console.

It is important to note that the trigger uses personal information provided by Shopify when creating a draft order to match the bot user in Flexito OmniAI. If the information is incorrect or doesn't exist, the payload is discarded without triggering.

The following response payload is received when the trigger is successfully activated.

{
"id": ,
"taxes_included": false,
"currency": "AUD",
"created_at": "T12:51:09-04:00",
"updated_at": "T12:51:09-04:00",
"tax_exempt": false,
"name": "#D142",
"status": "open",
"line_items": [
{
"id": ,
"variant_id": ,
"product_id": ,
"title": "Tetris Console iPhone Case",
"variant_title": "White / For IP 6 6s",
"sku": "-white-for-ip-6-6s",
"vendor": "hapans",
"quantity": 1,
"requires_shipping": true,
"taxable": false,
"gift_card": false,
"fulfillment_service": "manual",
"grams": 0,
"name": "Tetris Console iPhone Case - White / For IP 6 6s",
"custom": false,
"price": "25.60"
}
],
"shipping_address": {
"address1": "test",
"city": "test",
"country": "Pakistan",
"last_name": "Siddiqui",
"latitude": ,
"longitude": 69.34511599999999,
"name": "Siddiqui",
"country_code": "PK"
},
"billing_address": {
"address1": "test",
"city": "test",
"country": "Pakistan",
"last_name": "Siddiqui",
"latitude": ,
"longitude": 69.34511599999999,
"name": "Siddiqui",
"country_code": "PK"
},
"invoice_url": "
"total_price": "25.60",
"subtotal_price": "25.60",
"total_tax": "0.00",
"payment_terms": {
"id": ,
"payment_terms_name": "Due on receipt",
"payment_terms_type": "receipt",
"created_at": "T12:51:09-04:00",
"updated_at": "T12:51:09-04:00"
},
"customer": {
"id": ,
"accepts_marketing": false,
"created_at": "T18:09:49-04:00",
"updated_at": "T22:08:00-04:00",
"last_name": "Siddiqui",
"orders_count": 23,
"state": "disabled",
"total_spent": "1322.87",
"last_order_id": ,
"verified_email": true,
"tax_exempt": false,
"last_order_name": "#1065",
"currency": "AUD",
"phone": "",
"accepts_marketing_updated_at": "T22:08:00-04:00",
"sms_marketing_consent": {
"state": "not_subscribed",
"opt_in_level": "single_opt_in",
"consent_collected_from": "SHOPIFY"
},
"default_address": {
"id": ,
"customer_id": ,
"last_name": "Siddiqui",
"address1": "test",
"city": "test",
"country": "Pakistan",
"name": "Siddiqui",
"country_code": "PK",
"country_name": "Pakistan",
"default": true
}
}
}

User Creation with Triggers

The webhook identifies users by matching phone numbers and email addresses with existing bot users. If no match is found, a new user is created using the phone number. If the phone number is null, the email is used instead. Users created with phone numbers default to the WhatsApp channel, while those created with emails default to the web channel.