Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »


With Shopify, your bot can show and gather information during conversations, including customers, products, discounts and shop details.

Create a custom app

After you login your Shopify store, go to “Apps and sales channels”, and then you can create an app.

After you click “create an app” button, you will be redirect to below screenshot, give it a name, and then you will get the new app created.

Click the “Configure Admin API scopes”,

and then you need to give the permission to use the scopes below:

  • Write_customers

  • Read_customers

  • Write_discounts

  • Read_discounts

  • Read_files

  • Read_fulfillments

  • Write_orders

  • Read_orders

  • Write_product_listings

  • Read_product_listings

  • Write_products

  • Read_products

  • Write_script_tags

  • Read_script_tags

After you select all the scopes, save it.

Install the App

After you create the app, and select all the necessary scopes, now you can install this app to your store.

After you install the app, you will see the token as per screenshot below:

Now you can copy the token to the password in UChat. also copy the API key to the api key in UChat.

Last thing, you need to copy your shopify domain(the one like this xxx.myshopify.com), please note, it’s not your own domain.

https://share.getcloudapp.com/bLuBLRO5

Connect with UChat

Now after you login in your UChat account, you can go to integrations, and then go to Shopify.

After you put your API key, Token & Shopify domain, your connection will be done!

https://share.getcloudapp.com/kpu8xbAW

By following the above 4 steps, jumping to Shopify's website and logging in yourself, you can easily connect your Shopify account to UChat.

After connection, you will then be able to use Shopify in your Action step. As follow are the functions you can utilize. Descriptions for each field will be put on corresponding photos.

TIP - The functions work via API calls. This means that, by giving some inputs, you get your outputs from the servers. The outputs are saved in custom fields for future uses.

WARNING - You might need to know how to build flow and use variables before you read the following functions. See links below for guidance.

How To Use Shopify Actions

Right click on the flow builder and select action node. From the action node click on Integrations and scroll down and select Shopify.

Click on edit action , then select your desired shopify native action

Shopify Native Actions

UChat supports the following shopify native actions:

We will now dive into each action in detail.

Search For Customers

This action is used for looking up customer details using various query parameters such a customer id, email, phone no etc.

Input

Response Payload

{
"customers": [
{
"id": 5969354489922,
"email": null,
"first_name": null,
"last_name": "Siddiqui",
"orders_count": 18,
"last_order_id": 4862680858690,
"phone": "+923032320964"
},
{
"id": 554979819586,
"email": "matthew6688@gmail.com",
"first_name": "Matthew",
"last_name": "Miao",
"orders_count": 14,
"last_order_id": 4862144217154,
"phone": null
},
{
"id": 5969349214274,
"email": "hammadsiddiqui788@gmail.com",
"first_name": "Test",
"last_name": "test",
"orders_count": 1,
"last_order_id": 4861820502082,
"phone": null
}
]
}

Get Customer Info

This action is used to bring up information for a particular customer using their customer ID

Input

Response Payload

{
"customer": {
"id": 5969349214274,
"email": "hammadsiddiqui788@gmail.com",
"first_name": "Test",
"last_name": "test",
"orders_count": 1,
"last_order_id": 4861820502082,
"phone": null
}
}

Get Customer Orders

This action is used to bring up orders and their details of a particular customer using customer ID and other query parameters.

Input

Response Payload

{
"orders": [
{
"id": 4861820502082,
"cancelled_at": null,
"closed_at": null,
"confirmed": true,
"contact_email": "hammadsiddiqui788@gmail.com",
"created_at": "2023-03-27T18:03:31-04:00",
"currency": "AUD",
"email": "hammadsiddiqui788@gmail.com",
"financial_status": "pending",
"fulfillment_status": null,
"name": "#1036",
"number": 36,
"order_number": 1036,
"order_status_url": "https://connectdots-demo-store.myshopify.com/1763672130/orders/b545a20096979e8912b3f5de5261521a/authenticate?key=37180e3cdc0c7e6f172cf33407b82a20 ",
"phone": null,
"processed_at": "2023-03-27T18:03:30-04:00",
"reference": "019761d686838bd5f9056c44b791e4ac",
"subtotal_price": "24.87",
"tax_lines": [...], // 0 items
"total_discounts": "0.00",
"total_line_items_price": "24.87",
"total_price": "44.87",
"updated_at": "2023-03-27T18:03:32-04:00"
}
]
}

Get Customer Abandoned Checkouts

This action is used to bring up the abandoned checkouts of a particular customer using their customer Id

Input

Response Payload

{
"checkouts": [
{
"id": 28111582265410,
"token": "d93e09414106f10844c62eba29f54d05",
"cart_token": "49c342195618f0d5a0625666ebe5e3ff",
"email": "matthew6688@gmail.com",
"gateway": "bogus",
"buyer_accepts_marketing": false,
"created_at": "2022-08-28T18:52:57-04:00",
"updated_at": "2022-08-29T08:21:33-04:00",
"landing_site": "/",
"note": null,
"note_attributes": [...], // 0 items
"referring_site": "",
"shipping_lines": [...], // 1 items
"taxes_included": false,
"total_weight": 0,
"currency": "AUD",
"completed_at": "2022-08-29T08:21:30-04:00",
"closed_at": null,
"user_id": null,
"location_id": null,
"source_identifier": null,
"source_url": null,
"device_id": null,
"phone": null,
"customer_locale": "en-AU",
"line_items": [...], // 3 items
"name": "#28111582265410",
"source": null,
"abandoned_checkout_url": "https://connectdots-demo-store.myshopify.com/1763672130/checkouts/d93e09414106f10844c62eba29f54d05/recover?key=aa8d82943a3f905e2127b24cf34f812f ",
"discount_codes": [...], // 0 items
"tax_lines": [...], // 0 items
"source_name": "web",
"presentment_currency": "AUD",
"buyer_accepts_sms_marketing": false,
"sms_marketing_phone": null,
"total_discounts": "0.00",
"total_line_items_price": "180.45",
"total_price": "190.45",
"total_tax": "0.00",
"subtotal_price": "180.45",
"total_duties": null,
"billing_address": {...}, // 15 keys
"shipping_address": {...}, // 15 keys
"customer": {...} // 25 keys
}
]
}

Get Products

This action is used to bring up products available on your shopify store using various parameters such as product id, title, vendor etc

Input

Response Payload

{
"products": [
{
"id": 1413101355074,
"title": "2 in 1 Gold MacBook Riser & Stand",
"body_html": "Model Number: For Tablet PC StandMaterial: MetalFeature: Tablet Holder Mount for iPad & phone &TabletModel number: For Macbook Pro 13 15Material: Aluminum alloytablet stands: For Macbook Retina 12 13 15Stand for Tablet: For Ipad mini 1 2 3 4 ",
"vendor": "hapans",
"product_type": "Electronics",
"handle": "2-in-1-gold-macbook-riser-stand",
"variants": [
{
"id": 12535571218498,
"product_id": 1413101355074,
"title": "silver",
"price": "47.99",
"sku": "9877410-silver",
"position": 1,
"inventory_policy": "deny",
"compare_at_price": null,
"fulfillment_service": "manual",
"inventory_management": "shopify",
"option1": "silver",
"option2": null,
"option3": null,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2022-10-13T02:39:56-04:00",
"taxable": false,
"barcode": null,
"grams": 0,
"image_id": 3736679678018,
"weight": 0,
"weight_unit": "kg",
"inventory_item_id": 12660409401410,
"inventory_quantity": 989,
"old_inventory_quantity": 989,
"requires_shipping": true,
"admin_graphql_api_id": "gid://shopify/ProductVariant/12535571218498"
},
{
"id": 12535571251266,
"product_id": 1413101355074,
"title": "gold",
"price": "47.99",
"sku": "9877410-gold",
"position": 2,
"inventory_policy": "deny",
"compare_at_price": null,
"fulfillment_service": "manual",
"inventory_management": "shopify",
"option1": "gold",
"option2": null,
"option3": null,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2022-09-09T13:26:56-04:00",
"taxable": false,
"barcode": null,
"grams": 0,
"image_id": 3736679678018,
"weight": 0,
"weight_unit": "kg",
"inventory_item_id": 12660409434178,
"inventory_quantity": 998,
"old_inventory_quantity": 998,
"requires_shipping": true,
"admin_graphql_api_id": "gid://shopify/ProductVariant/12535571251266"
},
{
"id": 12535571284034,
"product_id": 1413101355074,
"title": "rose gold",
"price": "47.99",
"sku": "9877410-rose-gold",
"position": 3,
"inventory_policy": "deny",
"compare_at_price": null,
"fulfillment_service": "manual",
"inventory_management": "shopify",
"option1": "rose gold",
"option2": null,
"option3": null,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2018-09-12T00:53:05-04:00",
"taxable": false,
"barcode": null,
"grams": 0,
"image_id": 3736679710786,
"weight": 0,
"weight_unit": "kg",
"inventory_item_id": 12660409466946,
"inventory_quantity": 999,
"old_inventory_quantity": 999,
"requires_shipping": true,
"admin_graphql_api_id": "gid://shopify/ProductVariant/12535571284034"
}
],
"options": [
{
"id": 1864082522178,
"product_id": 1413101355074,
"name": "Color",
"position": 1,
"values": [
"silver",
"gold",
"rose gold"
]
}
],
"images": [
{
"id": 3736679645250,
"product_id": 1413101355074,
"position": 1,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2019-10-21T23:39:36-04:00",
"alt": null,
"width": 800,
"height": 800,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/macbook_stand.png?v=1571715576",
"variant_ids": [
],
"admin_graphql_api_id": "gid://shopify/ProductImage/3736679645250"
},
{
"id": 3736679678018,
"product_id": 1413101355074,
"position": 2,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2019-10-21T23:39:36-04:00",
"alt": null,
"width": 640,
"height": 640,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004687.jpg?v=1571715576",
"variant_ids": [
12535571218498,
12535571251266
],
"admin_graphql_api_id": "gid://shopify/ProductImage/3736679678018"
},
{
"id": 3736679710786,
"product_id": 1413101355074,
"position": 3,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2019-10-21T23:39:36-04:00",
"alt": null,
"width": 640,
"height": 640,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004689.jpg?v=1571715576",
"variant_ids": [
12535571284034
],
"admin_graphql_api_id": "gid://shopify/ProductImage/3736679710786"
},
{
"id": 3736679743554,
"product_id": 1413101355074,
"position": 4,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2019-10-21T23:39:36-04:00",
"alt": null,
"width": 800,
"height": 800,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004701.jpg?v=1571715576",
"variant_ids": [...], // 0 items
"admin_graphql_api_id": "gid://shopify/ProductImage/3736679743554"
},
{
"id": 3736679776322,
"product_id": 1413101355074,
"position": 5,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2019-10-21T23:39:36-04:00",
"alt": null,
"width": 800,
"height": 632,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004699.jpg?v=1571715576",
"variant_ids": [...], // 0 items
"admin_graphql_api_id": "gid://shopify/ProductImage/3736679776322"
}
],
"image": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/macbook_stand.png?v=1571715576"
}
]
}

Get Product Info

This action is used to bring up information regarding a particular product using its product ID.

Input

Response Payload

{
"product": {
"id": 1413101355074,
"title": "2 in 1 Gold MacBook Riser & Stand",
"body_html": "Model Number: For Tablet PC StandMaterial: MetalFeature: Tablet Holder Mount for iPad & phone &TabletModel number: For Macbook Pro 13 15Material: Aluminum alloytablet stands: For Macbook Retina 12 13 15Stand for Tablet: For Ipad mini 1 2 3 4 ",
"vendor": "hapans",
"product_type": "Electronics",
"handle": "2-in-1-gold-macbook-riser-stand",
"variants": [
{
"id": 12535571218498,
"product_id": 1413101355074,
"title": "silver",
"price": "47.99",
"sku": "9877410-silver",
"position": 1,
"inventory_policy": "deny",
"compare_at_price": null,
"fulfillment_service": "manual",
"inventory_management": "shopify",
"option1": "silver",
"option2": null,
"option3": null,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2022-10-13T02:39:56-04:00",
"taxable": false,
"barcode": null,
"grams": 0,
"image_id": 3736679678018,
"weight": 0,
"weight_unit": "kg",
"inventory_item_id": 12660409401410,
"inventory_quantity": 989,
"old_inventory_quantity": 989,
"requires_shipping": true,
"admin_graphql_api_id": "gid://shopify/ProductVariant/12535571218498",
"image": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004687.jpg?v=1571715576"
},
{
"id": 12535571251266,
"product_id": 1413101355074,
"title": "gold",
"price": "47.99",
"sku": "9877410-gold",
"position": 2,
"inventory_policy": "deny",
"compare_at_price": null,
"fulfillment_service": "manual",
"inventory_management": "shopify",
"option1": "gold",
"option2": null,
"option3": null,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2022-09-09T13:26:56-04:00",
"taxable": false,
"barcode": null,
"grams": 0,
"image_id": 3736679678018,
"weight": 0,
"weight_unit": "kg",
"inventory_item_id": 12660409434178,
"inventory_quantity": 998,
"old_inventory_quantity": 998,
"requires_shipping": true,
"admin_graphql_api_id": "gid://shopify/ProductVariant/12535571251266",
"image": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004687.jpg?v=1571715576"
},
{
"id": 12535571284034,
"product_id": 1413101355074,
"title": "rose gold",
"price": "47.99",
"sku": "9877410-rose-gold",
"position": 3,
"inventory_policy": "deny",
"compare_at_price": null,
"fulfillment_service": "manual",
"inventory_management": "shopify",
"option1": "rose gold",
"option2": null,
"option3": null,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2018-09-12T00:53:05-04:00",
"taxable": false,
"barcode": null,
"grams": 0,
"image_id": 3736679710786,
"weight": 0,
"weight_unit": "kg",
"inventory_item_id": 12660409466946,
"inventory_quantity": 999,
"old_inventory_quantity": 999,
"requires_shipping": true,
"admin_graphql_api_id": "gid://shopify/ProductVariant/12535571284034",
"image": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004689.jpg?v=1571715576"
}
],
"options": [
{
"id": 1864082522178,
"product_id": 1413101355074,
"name": "Color",
"position": 1,
"values": [
"silver",
"gold",
"rose gold"
]
}
],
"images": [
{
"id": 3736679645250,
"product_id": 1413101355074,
"position": 1,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2019-10-21T23:39:36-04:00",
"alt": null,
"width": 800,
"height": 800,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/macbook_stand.png?v=1571715576",
"variant_ids": [
],
"admin_graphql_api_id": "gid://shopify/ProductImage/3736679645250"
},
{
"id": 3736679678018,
"product_id": 1413101355074,
"position": 2,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2019-10-21T23:39:36-04:00",
"alt": null,
"width": 640,
"height": 640,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004687.jpg?v=1571715576",
"variant_ids": [
12535571218498,
12535571251266
],
"admin_graphql_api_id": "gid://shopify/ProductImage/3736679678018"
},
{
"id": 3736679710786,
"product_id": 1413101355074,
"position": 3,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2019-10-21T23:39:36-04:00",
"alt": null,
"width": 640,
"height": 640,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004689.jpg?v=1571715576",
"variant_ids": [
12535571284034
],
"admin_graphql_api_id": "gid://shopify/ProductImage/3736679710786"
},
{
"id": 3736679743554,
"product_id": 1413101355074,
"position": 4,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2019-10-21T23:39:36-04:00",
"alt": null,
"width": 800,
"height": 800,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004701.jpg?v=1571715576",
"variant_ids": [...], // 0 items
"admin_graphql_api_id": "gid://shopify/ProductImage/3736679743554"
},
{
"id": 3736679776322,
"product_id": 1413101355074,
"position": 5,
"created_at": "2018-06-18T08:20:46-04:00",
"updated_at": "2019-10-21T23:39:36-04:00",
"alt": null,
"width": 800,
"height": 632,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004699.jpg?v=1571715576",
"variant_ids": [
],
"admin_graphql_api_id": "gid://shopify/ProductImage/3736679776322"
}
],
"image": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/macbook_stand.png?v=1571715576"
}
}

Get Product Images

This action is used to fetch images of the product and its variants using the product IDs.

Input

Response Payload

{
"images": [
{
"id": 3736679645250,
"product_id": 1413101355074,
"position": 1,
"width": 800,
"height": 800,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/macbook_stand.png?v=1571715576"
},
{
"id": 3736679678018,
"product_id": 1413101355074,
"position": 2,
"width": 640,
"height": 640,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004687.jpg?v=1571715576"
},
{
"id": 3736679710786,
"product_id": 1413101355074,
"position": 3,
"width": 640,
"height": 640,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004689.jpg?v=1571715576"
},
{
"id": 3736679743554,
"product_id": 1413101355074,
"position": 4,
"width": 800,
"height": 800,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004701.jpg?v=1571715576"
},
{
"id": 3736679776322,
"product_id": 1413101355074,
"position": 5,
"width": 800,
"height": 632,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/product-image-421004699.jpg?v=1571715576"
}
]
}

Get Product Variants

This action is used to bring up information regarding variants of a product using its product ID

Input

Response Payload

{
"variants": [
{
"id": 12535571218498,
"product_id": 1413101355074,
"title": "silver",
"price": "47.99",
"sku": "9877410-silver",
"position": 1,
"compare_at_price": null,
"option1": "silver",
"option2": null,
"option3": null,
"barcode": null,
"grams": 0,
"image_id": 3736679678018,
"weight": 0,
"weight_unit": "kg",
"inventory_quantity": 989
}
]
}

Search For Custom Collections

This action is used to search up custom collections available for your products on your shopify store.

Input

Response Payload

{
"custom_collections": [
{
"id": 34403156034,
"handle": "frontpage",
"title": "Best Selling Products",
"body_html": "<p>Here is our Best selling products.</p> <p>The tips &amp; tricks will power your Shopify store with MUCH More AWESOME data!</p>",
"sort_order": "best-selling",
"image": {
"created_at": "2022-08-17T00:24:01-04:00",
"alt": null,
"width": 900,
"height": 900,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/collections/Custom_dimensions_900x900_px_8.jpg?v=1660710241"
}
}
]
}

Search For Smart Collections

This action is used to bring up smart collections of the products you have on your shopify stores.

Input

Response Payload

{
"smart_collections": [
{
"id": 264802598978,
"handle": "backpack-collection",
"title": "Backpack collection",
"body_html": "get your backpack and start enjoying your life outdoors!",
"sort_order": "best-selling",
"rules": [
{
"column": "tag",
"relation": "equals",
"condition": "backpack"
}
],
"image": {
"created_at": "2022-08-17T00:23:00-04:00",
"alt": null,
"width": 900,
"height": 900,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/collections/Custom_dimensions_900x900_px_7.jpg?v=1660710180"
}
},
{
"id": 264802631746,
"handle": "electronics",
"title": "Electronics",
"body_html": "Looks for the digital gadget you can't live out with. more information here.",
"sort_order": "best-selling",
"rules": [
{
"column": "tag",
"relation": "equals",
"condition": "Electronics"
}
],
"image": {
"created_at": "2022-08-17T00:21:47-04:00",
"alt": null,
"width": 900,
"height": 900,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/collections/Custom_dimensions_900x900_px_6.jpg?v=1660710107"
}
}
]
}

Get Collection Info

This action is used to bring up information about a collection using its collection ID.

Input

Reponse Payload

{
"collection": {
"id": 264802598978,
"handle": "backpack-collection",
"title": "Backpack collection",
"updated_at": "2023-02-25T07:42:25-05:00",
"body_html": "get your backpack and start enjoying your life outdoors!",
"published_at": "2022-07-28T21:07:11-04:00",
"sort_order": "best-selling",
"template_suffix": "",
"products_count": 7,
"disjunctive": false,
"collection_type": "smart",
"rules": [
{
"column": "tag",
"relation": "equals",
"condition": "backpack"
}
],
"published_scope": "web",
"admin_graphql_api_id": "gid://shopify/Collection/264802598978",
"image": {
"created_at": "2022-08-17T00:23:00-04:00",
"alt": null,
"width": 900,
"height": 900,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/collections/Custom_dimensions_900x900_px_7.jpg?v=1660710180"
}
}
}

Get collection Products

This action is used to fetch products related to a particular collection using collection ID

Input

Response Payload

{
"products": [
{
"id": 1413104205890,
"title": "Mochila Backpack",
"body_html": " ★LOTS OF STORAGE SPACE&amp;POCKETS: One separate laptop compartment hold 15.6 Inch Laptop as well as 15 Inch,14 Inch and 13 Inch Macbook/Laptop. One spacious packing compartment roomy for daily necessities,tech electronics accessories. Front compartment with many pockets, pen pockets and key fob hook, make your items organized and easier to find ★COMFY&amp;STURDY: Comfortable airflow back design with thick but soft multi-panel ventilated padding, gives you maximum back support. Breathable and adjustable shoulder straps relieve the stress of shoulder. Foam padded top handle for a long time carry on ★FUNCTIONAL&amp;SAFE: A luggage strap allows backpack fit on luggage/suitcase, slide over the luggage upright handle tube for easier carrying. With a hidden anti theft pocket on the back protect your valuable items from thieves. Well made for international airplane travel and day trip ★USB PORT DESIGN: With built in USB charger outside and built in charging cable inside,this usb backpack offers you a more convenient way to charge your phone while walking. Please noted that this backpack doesn't power itself, usb charging port only offers an easy access to charge ★DURABLE MATERIAL&amp;SOLID: Made of Water Resistant and Durable Polyester Fabric with metal zippers.Ensure a secure &amp; long-lasting usage everyday &amp; weekend.Serve you well as professional office work bag,slim USB charging bagpack,college high school big student backpack for boys,girls,teens,adults ",
"vendor": "hapans",
"product_type": "backpack",
"handle": "mochila-backpack",
"options": [
{
"id": 1864085733442,
"product_id": 1413104205890,
"name": "Color",
"position": 1
},
{
"id": 1864085766210,
"product_id": 1413104205890,
"name": "Size",
"position": 2
}
],
"images": [
{
"id": 3736686919746,
"product_id": 1413104205890,
"position": 1,
"created_at": "2018-06-18T08:22:39-04:00",
"updated_at": "2019-10-21T23:39:37-04:00",
"alt": null,
"width": 800,
"height": 800,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/Mochila_Backpack.png?v=1571715577",
"variant_ids": [
12535580164162
],
"admin_graphql_api_id": "gid://shopify/ProductImage/3736686919746"
},
{
"id": 3736686952514,
"product_id": 1413104205890,
"position": 2,
"created_at": "2018-06-18T08:22:39-04:00",
"updated_at": "2019-10-21T23:39:37-04:00",
"alt": null,
"width": 430,
"height": 430,
"src": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/Backpack_black.png?v=1571715577",
"variant_ids": [...], // 1 items
"admin_graphql_api_id": "gid://shopify/ProductImage/3736686952514"
}
],
"image": "https://cdn.shopify.com/s/files/1/0017/6367/2130/products/Mochila_Backpack.png?v=1571715577"
}
]
}

Get Shop Info

This action is used to bring up information about your shopify store.

Input

Response Payload

{
"shop": {
"id": 1763672130,
"name": "CONNECTDOTS DEMO STORE",
"email": "matthew@uchat.com.au",
"domain": "http://connectdots-demo-store.myshopify.com ",
"province": "Queensland",
"country": "AU",
"address1": "49 payne st",
"zip": "4068",
"city": "indooroopilly",
"phone": "0422213688",
"latitude": -27.4940251,
"longitude": 152.9733169,
"primary_locale": "en",
"address2": "",
"country_code": "AU",
"country_name": "Australia",
"currency": "AUD",
"customer_email": "matthew@uchat.com.au",
"timezone": "(GMT-05:00) America/New_York",
"iana_timezone": "America/New_York",
"shop_owner": "CONNECTDOTS DEMO STORE Admin",
"myshopify_domain": "http://connectdots-demo-store.myshopify.com "
}
}

Create Draft Order For One Product

This action is used to create a draft order for a customer using their customer id and product variant id.

Input

Response Payload

{
"draft_order": {
"id": 932211818562,
"note": "",
"email": null,
"taxes_included": false,
"currency": "AUD",
"invoice_sent_at": null,
"created_at": "2023-04-06T23:21:38-04:00",
"updated_at": "2023-04-06T23:21:38-04:00",
"tax_exempt": false,
"completed_at": null,
"name": "#D127",
"status": "open",
"line_items": [
{...} // 20 keys
],
"shipping_address": null,
"billing_address": null,
"invoice_url": "https://connectdots-demo-store.myshopify.com/1763672130/invoices/149487cd2cd8c0dc0c6f0a02cea7570e ",
"applied_discount": null,
"order_id": null,
"shipping_line": null,
"tax_lines": [
],
"tags": "",
"note_attributes": [
],
"total_price": "45.90",
"subtotal_price": "45.90",
"total_tax": "0.00",
"payment_terms": null,
"admin_graphql_api_id": "gid://shopify/DraftOrder/932211818562"
}
}

Create Draft Order For Multiple Products

This action is used for creating a draft order that includes multiple products of customers using their customer ID

Input

Response Payload

{
"draft_order": {
"id": 932213981250,
"note": "",
"email": null,
"taxes_included": false,
"currency": "AUD",
"invoice_sent_at": null,
"created_at": "2023-04-07T00:18:51-04:00",
"updated_at": "2023-04-07T00:18:51-04:00",
"tax_exempt": false,
"completed_at": null,
"name": "#D128",
"status": "open",
"line_items": [
{...} // 20 keys
],
"shipping_address": null,
"billing_address": null,
"invoice_url": "https://connectdots-demo-store.myshopify.com/1763672130/invoices/9c7bf5e61895642a0ec653438b26015f ",
"applied_discount": null,
"order_id": null,
"shipping_line": null,
"tax_lines": [
],
"tags": "",
"note_attributes": [
],
"total_price": "45.90",
"subtotal_price": "45.90",
"total_tax": "0.00",
"payment_terms": null,
"admin_graphql_api_id": "gid://shopify/DraftOrder/932213981250"
}
}

Create Draft Order WIth Custom Product

This action is used to create a draft order using a custom product.

Input

Reponse Payload

{
"draft_order": {
"id": 932221059138,
"note": "",
"email": null,
"taxes_included": false,
"currency": "AUD",
"invoice_sent_at": null,
"created_at": "2023-04-07T04:17:52-04:00",
"updated_at": "2023-04-07T04:17:52-04:00",
"tax_exempt": false,
"completed_at": null,
"name": "#D129",
"status": "open",
"line_items": [
{...} // 20 keys
],
"shipping_address": null,
"billing_address": null,
"invoice_url": "https://connectdots-demo-store.myshopify.com/1763672130/invoices/dde50cad201cc7a8b29434e65e517f00",
"applied_discount": null,
"order_id": null,
"shipping_line": null,
"tax_lines": [
{...} // 3 keys
],
"tags": "",
"note_attributes": [
],
"total_price": "22.00",
"subtotal_price": "20.00",
"total_tax": "2.00",
"payment_terms": null,
"admin_graphql_api_id": "gid://shopify/DraftOrder/932221059138"
}
}

Send An Invoice Of Draft Order

This action is used to send an invoice of the draft order created to the customer. Please note that the email id used to send the email should be of someone from the staff or someone who has staff privileges.

Input

Response Payload

{
"draft_order_invoice": {
"to": "hammadsiddiqui788@gmail.com",
"from": "matthew6688@gmail.com",
"subject": "Invoice",
"custom_message": "This is a test message",
"bcc": [
]
}
}

Apply Discount To A Draft Order

This action is used to apply a discount offer or code to an existing draft order.

Input

Response Payload

{
"draft_order": {
"id": 932221059138,
"note": "",
"email": null,
"taxes_included": false,
"currency": "AUD",
"invoice_sent_at": "2023-04-07T04:24:24-04:00",
"created_at": "2023-04-07T04:17:52-04:00",
"updated_at": "2023-04-07T04:29:06-04:00",
"tax_exempt": false,
"completed_at": null,
"name": "#D129",
"status": "invoice_sent",
"line_items": [
{...} // 20 keys
],
"shipping_address": null,
"billing_address": null,
"invoice_url": "https://connectdots-demo-store.myshopify.com/1763672130/invoices/dde50cad201cc7a8b29434e65e517f00",
"applied_discount": {
"description": "Start of summer clearance",
"value": "20.0",
"title": "Summer sale",
"amount": "4.00",
"value_type": "percentage"
},
"order_id": null,
"shipping_line": null,
"tax_lines": [
{...} // 3 keys
],
"tags": "",
"note_attributes": [
],
"total_price": "17.60",
"subtotal_price": "16.00",
"total_tax": "1.60",
"payment_terms": null,
"admin_graphql_api_id": "gid://shopify/DraftOrder/932221059138"
}
}

Complete Draft Order

This action is used to either mark a draft order paid or unpaid.

Input

Response Payload

{
"draft_order": {
"id": 932221059138,
"note": "",
"email": null,
"taxes_included": false,
"currency": "AUD",
"invoice_sent_at": "2023-04-07T04:24:24-04:00",
"created_at": "2023-04-07T04:17:52-04:00",
"updated_at": "2023-04-07T04:35:41-04:00",
"tax_exempt": false,
"completed_at": "2023-04-07T04:35:41-04:00",
"name": "#D129",
"status": "completed",
"line_items": [
{...} // 20 keys
],
"shipping_address": null,
"billing_address": null,
"invoice_url": "https://connectdots-demo-store.myshopify.com/1763672130/invoices/dde50cad201cc7a8b29434e65e517f00",
"applied_discount": {
"description": "Start of summer clearance",
"value": "20.0",
"title": "Summer sale",
"amount": "4.00",
"value_type": "percentage"
},
"order_id": 4877204291650,
"shipping_line": null,
"tax_lines": [
{...} // 3 keys
],
"tags": "",
"note_attributes": [
],
"total_price": "17.60",
"subtotal_price": "16.00",
"total_tax": "1.60",
"payment_terms": null,
"admin_graphql_api_id": "gid://shopify/DraftOrder/932221059138"
}
}

Delete Draft Order

This action is used to delete the draft order using draft order Id.

Input

Respone Payload

[

]

Get Draft Order Info

This action is used to fetch information of a particular draft orde using draft orde ID

Input

Response Payload

{
"draft_order": {
"id": 932222074946,
"note": "",
"email": null,
"currency": "AUD",
"invoice_sent_at": null,
"created_at": "2023-04-07T04:44:07-04:00",
"updated_at": "2023-04-07T04:44:07-04:00",
"status": "open",
"line_items": [
{...} // 20 keys
],
"invoice_url": "https://connectdots-demo-store.myshopify.com/1763672130/invoices/420d58624f2da6e77933e7918922d1bf ",
"subtotal_price": "20.00"
}
}

Get Order Info

This action is used to fetch information regarding a particular order using Order Id.

Input

Response Payload

{
"order": {
"id": 4861820502082,
"cancelled_at": null,
"closed_at": null,
"confirmed": true,
"contact_email": "hammadsiddiqui788@gmail.com",
"created_at": "2023-03-27T18:03:31-04:00",
"currency": "AUD",
"email": "hammadsiddiqui788@gmail.com",
"financial_status": "pending",
"fulfillment_status": null,
"name": "#1036",
"number": 36,
"order_number": 1036,
"order_status_url": "https://connectdots-demo-store.myshopify.com/1763672130/orders/b545a20096979e8912b3f5de5261521a/authenticate?key=37180e3cdc0c7e6f172cf33407b82a20 ",
"phone": null,
"processed_at": "2023-03-27T18:03:30-04:00",
"reference": "019761d686838bd5f9056c44b791e4ac",
"subtotal_price": "24.87",
"tax_lines": [
],
"total_discounts": "0.00",
"total_line_items_price": "24.87",
"total_price": "44.87",
"updated_at": "2023-03-27T18:03:32-04:00"
}
}

Add To Cart

This action is used to add a product to a user’s cart using bot user’s NS and variant id of the product.

Input

Response Payload

{
"variant_id": 12535571218498,
"product_id": 1413101355074,
"quantity": 2,
"previous_quantity": 1
}

Remove From Cart

This action is used to remove an item from the cart using user NS and variant Id.

Input

Response Payload

{
"variant_id": 12535571218498,
"product_id": 1413101355074,
"quantity": 1,
"previous_quantity": 2
}

Empty Cart

This action is used to completely empty a cart for a user using their user NS

Input

Response Payload

{
"status": "ok"
}

Get Cart Items

This action is used to fetch cart information of a bot user , using their user NS

Input

Response Payload

{
"note": "f12372u15376836",
"taxes_included": false,
"currency": "AUD",
"tax_exempt": false,
"name": "#D131",
"line_items": [
{
"id": 57423008071746,
"variant_id": 12535571218498,
"product_id": 1413101355074,
"title": "2 in 1 Gold MacBook Riser & Stand",
"variant_title": "silver",
"sku": "9877410-silver",
"vendor": "hapans",
"quantity": 3,
"requires_shipping": true,
"taxable": false,
"gift_card": false,
"fulfillment_service": "manual",
"grams": 0,
"tax_lines": [...], // 0 items
"applied_discount": null,
"name": "2 in 1 Gold MacBook Riser & Stand - silver",
"properties": [...], // 0 items
"custom": false,
"price": "47.99",
"admin_graphql_api_id": "gid://shopify/DraftOrderLineItem/57423008071746"
}
],
"tax_lines": [
],
"total_price": "143.97",
"subtotal_price": "143.97",
"total_tax": "0.00"
}

Create Draft Order From Cart

This action is used to create a draft order using line items available in the cart.

Input

Response Payload

{
"draft_order": {
"id": 932223320130,
"note": "f12372u15376836",
"email": null,
"taxes_included": false,
"currency": "AUD",
"invoice_sent_at": null,
"created_at": "2023-04-07T05:13:45-04:00",
"updated_at": "2023-04-07T05:13:45-04:00",
"tax_exempt": false,
"completed_at": null,
"name": "#D132",
"status": "open",
"line_items": [
{...} // 20 keys
],
"shipping_address": null,
"billing_address": null,
"invoice_url": "https://connectdots-demo-store.myshopify.com/1763672130/invoices/c79c6b0ed4125ded500ed427a00e2009 ",
"applied_discount": null,
"order_id": null,
"shipping_line": null,
"tax_lines": [
],
"tags": "",
"note_attributes": [
],
"total_price": "143.97",
"subtotal_price": "143.97",
"total_tax": "0.00",
"payment_terms": null,
"admin_graphql_api_id": "gid://shopify/DraftOrder/932223320130"
}
}

Create Metafield

This action is used to create a metafield for a resource such as customer, draft order, order , product etc.

Input

Response Payload

{
"metafield": {
"id": 20794390872130,
"namespace": "test metafield",
"key": "test_1",
"value": "test",
"value_type": "string",
"description": "This is a test metafield",
"owner_id": 932223320130,
"created_at": "2023-04-07T05:19:02-04:00",
"updated_at": "2023-04-07T05:19:02-04:00",
"owner_resource": "draft_order",
"type": "single_line_text_field",
"admin_graphql_api_id": "gid://shopify/Metafield/20794390872130"
}
}

Update Metafield

This action is used to update the metafield

Input

Resource Payload

{
"metafield": {
"value": "test1",
"value_type": "string",
"owner_id": 932223320130,
"namespace": "test metafield",
"key": "test_1",
"id": 20794390872130,
"description": "This is a test metafield",
"created_at": "2023-04-07T05:19:02-04:00",
"updated_at": "2023-04-07T05:43:48-04:00",
"owner_resource": "draft_order",
"type": "single_line_text_field",
"admin_graphql_api_id": "gid://shopify/Metafield/20794390872130"
}
}

Get Metafield Info

This action is used to bring up information regarding a particular metafield using metafield and resource ids.

Input

Response Payload

{
"metafield": {
"id": 20794390872130,
"namespace": "test metafield",
"key": "test_1",
"value": "test1",
"description": "This is a test metafield",
"owner_id": 932223320130,
"owner_resource": "draft_order",
"type": "single_line_text_field"
}
}

Search Metafields

This action is used to search for metafields associated with a resource.

Input

Response Payload

{
"metafields": [
{
"id": 20794390872130,
"namespace": "test metafield",
"key": "test_1",
"value": "test1",
"description": "This is a test metafield",
"owner_id": 932223320130,
"owner_resource": "draft_order",
"type": "single_line_text_field"
}
]
}

Delete Metafields

This action is used to delete metafields using the metafield Id and resource Id

Input

Response Payload

[
]

Shopify Triggers

UChat now supports native webhook integration with Shopify. There is now no need to use inbound webhooks anymore as not only this native integration has any webhook limitations but also avoids other problems such a removal of webhooks from shopify store, unresponsive and empty payloads etc.

Re-Establishing Connection with Shopify

Re-establishing connection with shopify in an important step for this update to start working. Follow the steps below to establish the connection:

On Workspace dashboard, click on Integrations and then click on shopify. Afterwards click on Save button and your connection will be re-established.

Finding & Selecting the Shopify Triggers

Once inside your bot, follow the below steps to find and use the triggers.

Click on Automation from the left side of the scroll bar and then select Triggers from the top.

Click on “New Trigger” and scroll down till you see Shopify Webhook, select it.

Native Webhook Actions

UChat supports the following native actions as of now.

How To Use The Triggers

Follow the below visual guide for using the triggers

After adding the details and mapping the variable, attach the trigger to a subflow as:

We are now ready to use the triggers.

Triggers & Response Payloads

Cart Abandoned

Cart Abandoned is triggered from shopify whenever any customer enter their billing details but does not continue to payment page or does not complete the payment. The response payload returns information regarding cart items, amount , checkout page url etc.

The response payload return the following JSON.

{
"id": 31436486049858,
"token": "5f47abde83b5d4a079cd5489c9bc6fa2",
"buyer_accepts_marketing": false,
"buyer_accepts_sms_marketing": false,
"created_at": "2023-03-28T04:56:22+00:00",
"updated_at": "2023-03-28T00:57:03-04:00",
"note": "f12372u15376836",
"taxes_included": false,
"total_weight": 0,
"currency": "AUD",
"phone": "+923032320964",
"customer_locale": "en",
"line_items": [
{
"key": "12535578755138",
"fulfillment_service": "manual",
"gift_card": false,
"grams": 0,
"presentment_variant_title": "Black",
"product_id": 1413103583298,
"quantity": 1,
"requires_shipping": true,
"sku": "11797017-1",
"taxable": false,
"title": "Pink Leather Quartz Watch",
"variant_id": 12535578755138,
"variant_title": "Black",
"variant_price": "14.99",
"vendor": "hapans",
"line_price": "14.99",
"price": "14.99"
}
],
"name": "#31436486049858",
"source_name": "5092638721",
"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": 5969354489922,
"accepts_marketing": false,
"last_name": "Siddiqui",
"orders_count": 6,
"state": "disabled",
"total_spent": "204.59",
"last_order_id": 4862145101890,
"verified_email": true,
"tax_exempt": false,
"phone": "+923032320964",
"currency": "AUD",
"default_address": {
"customer_id": 5969354489922,
"last_name": "Siddiqui",
"address1": "test",
"city": "test",
"country": "Pakistan",
"zip": "78601",
"name": "Siddiqui",
"country_code": "PK",
"country_name": "Pakistan",
"default": true
}
}
}

Note : The minimum time limit before the cart abandoned webhook triggered is 30 minutes by default

Order Creation (Cash On Delivery & Credit Card)

This webhook is triggered whenever someone completes the checkout process and places an order. The only difference between the two triggers is that when using Cash on Delivery, the order is by default marked unpaid and when using credit card, the order is by default marked as paid.

The response payload returns the following JSON

{
"id": 4862145101890,
"app_id": 5092638721,
"browser_ip": "119.160.34.14",
"buyer_accepts_marketing": false,
"checkout_id": 31435950030914,
"checkout_token": "3b34065898c1c679e0283b3c8c7d5da0",
"confirmed": true,
"created_at": "2023-03-27T23: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": 5833621570,
"name": "#1044",
"note": "f12372u15376836",
"number": 44,
"order_number": 1044,
"order_status_url": "https://connectdots-demo-store.myshopify.com/1763672130/orders/de745afb0f9e4ce033d41035ddd1f58c/authenticate?key=3016e4bcfd50202adb9219947e665765 ",
"payment_gateway_names": [
"Cash on Delivery (COD)"
],
"phone": "+923032320964",
"processed_at": "2023-03-27T23:16:49-04:00",
"processing_method": "manual",
"reference": "a05cd2354ac4540796e3fe1e3c161553",
"source_identifier": "a05cd2354ac4540796e3fe1e3c161553",
"source_name": "5092638721",
"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": "2023-03-27T23:16:50-04:00",
"billing_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
},
"customer": {
"id": 5969354489922,
"accepts_marketing": false,
"created_at": "2023-03-27T18:09:49-04:00",
"updated_at": "2023-03-27T23:16:50-04:00",
"last_name": "Siddiqui",
"state": "disabled",
"verified_email": true,
"tax_exempt": false,
"phone": "+923032320964",
"sms_marketing_consent": {
"state": "not_subscribed",
"opt_in_level": "single_opt_in",
"consent_collected_from": "SHOPIFY"
},
"currency": "AUD",
"accepts_marketing_updated_at": "2023-03-27T23:16:50-04:00",
"default_address": {
"id": 7363751346242,
"customer_id": 5969354489922,
"last_name": "Siddiqui",
"address1": "test",
"city": "test",
"country": "Pakistan",
"zip": "78601",
"name": "Siddiqui",
"country_code": "PK",
"country_name": "Pakistan",
"default": true
}
},
"line_items": [
{
"id": 12241816059970,
"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": 1413102731330,
"quantity": 1,
"requires_shipping": true,
"sku": "1097285-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": 12535576723522,
"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 is triggered whenever the order is cancelled from the shopify admin console.

The response payload returns the following JSON.

{
"id": 4862123409474,
"app_id": 5092638721,
"browser_ip": "119.160.34.14",
"buyer_accepts_marketing": false,
"cancel_reason": "customer",
"cancelled_at": "2023-03-28T00:50:11-04:00",
"checkout_id": 31435774623810,
"checkout_token": "d30a2d9c71d12d4ff8a154b4b140774e",
"closed_at": "2023-03-28T00:50:10-04:00",
"confirmed": true,
"created_at": "2023-03-27T22: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": 5833621570,
"name": "#1041",
"note": "f12372u15376836",
"number": 41,
"order_number": 1041,
"order_status_url": "https://connectdots-demo-store.myshopify.com/1763672130/orders/3e7b990cb48fb3908681618fdfd11cb8/authenticate?key=14cd6656da59e677a3db0b4464e50661 ",
"payment_gateway_names": [
"Cash on Delivery (COD)"
],
"phone": "+923032320964",
"processed_at": "2023-03-27T22:46:02-04:00",
"processing_method": "manual",
"reference": "934715d25490a701d19d0afb46e2e73a",
"source_identifier": "934715d25490a701d19d0afb46e2e73a",
"source_name": "5092638721",
"subtotal_price": "24.87",
"taxes_included": false,
"test": false,
"token": "3e7b990cb48fb3908681618fdfd11cb8",
"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": "2023-03-28T00:50:11-04:00",
"billing_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
},
"customer": {
"id": 5969354489922,
"accepts_marketing": false,
"created_at": "2023-03-27T18:09:49-04:00",
"updated_at": "2023-03-27T23:16:50-04:00",
"last_name": "Siddiqui",
"state": "disabled",
"verified_email": true,
"tax_exempt": false,
"phone": "+923032320964",
"sms_marketing_consent": {
"state": "not_subscribed",
"opt_in_level": "single_opt_in",
"consent_collected_from": "SHOPIFY"
},
"currency": "AUD",
"accepts_marketing_updated_at": "2023-03-27T23:16:50-04:00",
"default_address": {
"id": 7363751346242,
"customer_id": 5969354489922,
"last_name": "Siddiqui",
"address1": "test",
"city": "test",
"country": "Pakistan",
"zip": "78601",
"name": "Siddiqui",
"country_code": "PK",
"country_name": "Pakistan",
"default": true
}
},
"line_items": [
{
"id": 12241758912578,
"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": 1413102731330,
"quantity": 1,
"requires_shipping": true,
"sku": "1097285-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": 12535576133698,
"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 is triggered whenever the order is marked from the shopify admin console.

The response payload returns the following JSON.

{
"id": 4862145101890,
"app_id": 5092638721,
"browser_ip": "119.160.34.14",
"buyer_accepts_marketing": false,
"checkout_id": 31435950030914,
"checkout_token": "3b34065898c1c679e0283b3c8c7d5da0",
"confirmed": true,
"created_at": "2023-03-27T23: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": 5833621570,
"name": "#1044",
"note": "f12372u15376836",
"number": 44,
"order_number": 1044,
"order_status_url": "https://connectdots-demo-store.myshopify.com/1763672130/orders/de745afb0f9e4ce033d41035ddd1f58c/authenticate?key=3016e4bcfd50202adb9219947e665765 ",
"payment_gateway_names": [
"Cash on Delivery (COD)"
],
"phone": "+923032320964",
"processed_at": "2023-03-27T23:16:49-04:00",
"processing_method": "manual",
"reference": "a05cd2354ac4540796e3fe1e3c161553",
"source_identifier": "a05cd2354ac4540796e3fe1e3c161553",
"source_name": "5092638721",
"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": "2023-03-28T00:42:02-04:00",
"billing_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
},
"customer": {
"id": 5969354489922,
"accepts_marketing": false,
"created_at": "2023-03-27T18:09:49-04:00",
"updated_at": "2023-03-27T23:16:50-04:00",
"last_name": "Siddiqui",
"state": "disabled",
"verified_email": true,
"tax_exempt": false,
"phone": "+923032320964",
"sms_marketing_consent": {
"state": "not_subscribed",
"opt_in_level": "single_opt_in",
"consent_collected_from": "SHOPIFY"
},
"currency": "AUD",
"accepts_marketing_updated_at": "2023-03-27T23:16:50-04:00",
"default_address": {
"id": 7363751346242,
"customer_id": 5969354489922,
"last_name": "Siddiqui",
"address1": "test",
"city": "test",
"country": "Pakistan",
"zip": "78601",
"name": "Siddiqui",
"country_code": "PK",
"country_name": "Pakistan",
"default": true
}
},
"line_items": [
{
"id": 12241816059970,
"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": 1413102731330,
"quantity": 1,
"requires_shipping": true,
"sku": "1097285-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": 12535576723522,
"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 is triggered whenever the order is fulfilled from the shopify admin console. It return information such as order details and shipping tracking from merchants etc.

The response payload returns the following JSON.

{
"id": 4862145101890,
"app_id": 5092638721,
"browser_ip": "119.160.34.14",
"buyer_accepts_marketing": false,
"checkout_id": 31435950030914,
"checkout_token": "3b34065898c1c679e0283b3c8c7d5da0",
"closed_at": "2023-03-28T00:47:58-04:00",
"confirmed": true,
"created_at": "2023-03-27T23: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": 5833621570,
"name": "#1044",
"note": "f12372u15376836",
"number": 44,
"order_number": 1044,
"order_status_url": "https://connectdots-demo-store.myshopify.com/1763672130/orders/de745afb0f9e4ce033d41035ddd1f58c/authenticate?key=3016e4bcfd50202adb9219947e665765 ",
"payment_gateway_names": [
"Cash on Delivery (COD)"
],
"phone": "+923032320964",
"processed_at": "2023-03-27T23:16:49-04:00",
"processing_method": "manual",
"reference": "a05cd2354ac4540796e3fe1e3c161553",
"source_identifier": "a05cd2354ac4540796e3fe1e3c161553",
"source_name": "5092638721",
"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": "2023-03-28T00:47:58-04:00",
"billing_address": {
"address1": "test",
"city": "test",
"zip": "78601",
"country": "Pakistan",
"last_name": "Siddiqui",
"name": "Siddiqui",
"country_code": "PK"
},
"customer": {
"id": 5969354489922,
"accepts_marketing": false,
"created_at": "2023-03-27T18:09:49-04:00",
"updated_at": "2023-03-27T23:16:50-04:00",
"last_name": "Siddiqui",
"state": "disabled",
"verified_email": true,
"tax_exempt": false,
"phone": "+923032320964",
"sms_marketing_consent": {
"state": "not_subscribed",
"opt_in_level": "single_opt_in",
"consent_collected_from": "SHOPIFY"
},
"currency": "AUD",
"accepts_marketing_updated_at": "2023-03-27T23:16:50-04:00",
"default_address": {
"id": 7363751346242,
"customer_id": 5969354489922,
"last_name": "Siddiqui",
"address1": "test",
"city": "test",
"country": "Pakistan",
"zip": "78601",
"name": "Siddiqui",
"country_code": "PK",
"country_name": "Pakistan",
"default": true
}
},
"fulfillments": [
{
"id": 4365623230530,
"created_at": "2023-03-28T00:47:58-04:00",
"location_id": 5833621570,
"name": "#1044.1",
"order_id": 4862145101890,
"service": "manual",
"status": "success",
"tracking_company": "Bonds",
"tracking_number": "23123123",
"tracking_numbers": [
"23123123"
],
"tracking_url": "https://appsrv.bondscouriers.com.au/bondsweb/track-job.htm?jobNo=23123123 ",
"tracking_urls": [
"https://appsrv.bondscouriers.com.au/bondsweb/track-job.htm?jobNo=23123123 "
],
"updated_at": "2023-03-28T00:47:58-04:00",
"line_items": [
{
"id": 12241816059970,
"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": 1413102731330,
"quantity": 1,
"requires_shipping": true,
"sku": "1097285-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": 12535576723522,
"variant_inventory_management": "shopify",
"variant_title": "CH 0221",
"vendor": "hapans"
}
]
}
],
"line_items": [
{
"id": 12241816059970,
"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": 1413102731330,
"quantity": 1,
"requires_shipping": true,
"sku": "1097285-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": 12535576723522,
"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

The webhook is triggered whenever a draft order is created either via an API call through the bot or from Shopify admin console directly.

An important note here is that the trigger uses the personal information provided by Shopify upon creation of draft order to match the bot user inside UChat. If the provided with the payload is incorrect or doesnt exist the payload is simply wasted without the trigger being fired.

Following response payload is received whenever the trigger is successfully fired.

{
"id": 932436770882,
"taxes_included": false,
"currency": "AUD",
"created_at": "2023-04-10T12:51:09-04:00",
"updated_at": "2023-04-10T12:51:09-04:00",
"tax_exempt": false,
"name": "#D142",
"status": "open",
"line_items": [
{
"id": 57423868919874,
"variant_id": 12535571710018,
"product_id": 1413101748290,
"title": "Tetris Console iPhone Case",
"variant_title": "White / For IP 6 6s",
"sku": "12686347-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": 30.375321,
"longitude": 69.34511599999999,
"name": "Siddiqui",
"country_code": "PK"
},
"billing_address": {
"address1": "test",
"city": "test",
"country": "Pakistan",
"last_name": "Siddiqui",
"latitude": 30.375321,
"longitude": 69.34511599999999,
"name": "Siddiqui",
"country_code": "PK"
},
"invoice_url": "https://connectdots-demo-store.myshopify.com/1763672130/invoices/ba420962c10eb92c52c0d933afae8d19",
"total_price": "25.60",
"subtotal_price": "25.60",
"total_tax": "0.00",
"payment_terms": {
"id": 5674041410,
"payment_terms_name": "Due on receipt",
"payment_terms_type": "receipt",
"created_at": "2023-04-10T12:51:09-04:00",
"updated_at": "2023-04-10T12:51:09-04:00"
},
"customer": {
"id": 5969354489922,
"accepts_marketing": false,
"created_at": "2023-03-27T18:09:49-04:00",
"updated_at": "2023-04-09T22:08:00-04:00",
"last_name": "Siddiqui",
"orders_count": 23,
"state": "disabled",
"total_spent": "1322.87",
"last_order_id": 4881087299650,
"verified_email": true,
"tax_exempt": false,
"last_order_name": "#1065",
"currency": "AUD",
"phone": "+923032320964",
"accepts_marketing_updated_at": "2023-04-09T22:08:00-04:00",
"sms_marketing_consent": {
"state": "not_subscribed",
"opt_in_level": "single_opt_in",
"consent_collected_from": "SHOPIFY"
},
"default_address": {
"id": 7364628021314,
"customer_id": 5969354489922,
"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 the users using phone number and email address and then matching it from the existing bot users already present. If the bot users are not found then phone number is used to create the user. If phone number is returned null, then email is used to create the user. When users are created using phone numbers, they are created under whatsapp channel by default, and when users are created using email, they are created under web channel.

  • No labels