Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7

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.

...

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!

...

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.

Info

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.

Note

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

...

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

Image Removed

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

Image Removed

...

UChat supports the following shopify native actions:

Image RemovedImage RemovedImage RemovedImage RemovedImage Removed

We will now dive into each action in detail.

...

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

...

Image Removed

Image Removed

...

{
"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
}
]
}

...

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

...

...

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

...

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

...

...

{
"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"
}
]
}

...

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

...

...

{
"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
}
]
}

...

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

...

...

{
"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"
}
]
}

...

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

...

...

{
"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"
}
}

...

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

...

...

{
"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"
}
]
}

...

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

...

...

{
"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
}
]
}

...

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

...

...

{
"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"
}
}
]
}

...

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

...

...

{
"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"
}
}
]
}

...

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

...

...

{
"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"
}
}
}

...

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

...

...

{
"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"
}
]
}

...

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

...

...

{
"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 "
}
}

...

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

...

...

{
"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"
}
}

...

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

...

...

{
"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"
}
}

...

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

...

...

{
"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"
}
}

...

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.

...

...

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

...

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

...

...

{
"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"
}
}

...

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

...

...

{
"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

[

]

...

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

...

...

{
"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"
}
}

...

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

...

...

{
"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"
}
}

...

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

...

...

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

...

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

...

...

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

...

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

...

...

{
"status": "ok"
}

...

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

...

...

{
"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"
}

...

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

...

...

{
"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"
}
}

...

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

...

...

{
"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"
}
}

...

This action is used to update the metafield

...

...

{
"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"
}
}

...

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

...

...

{
"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"
}
}

...

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

...

...

{
"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"
}
]
}

...

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

...

...

[
]

...

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 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.

Image Removed

...

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.

Image Removed

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

Image Removed

...

UChat supports the following native actions as of now.

Image Removed

...

Follow the below visual guide for using the triggers

...

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

Image Removed

We are now ready to use the triggers.

...

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

...

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"
}
}

...

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"
}
}

...

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"
}
}

...

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
}
}
}

...

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 channelIntegrating UChat, a powerful chatbot platform, with your Shopify store offers a wide range of benefits that enhance the overall customer experience and boost your online business success. Some of the key benefits include:

  1. Improved Customer Support: UChat provides instant responses to customer inquiries, order tracking, and product recommendations, reducing response time and providing a convenient way for customers to get the information they need without waiting. This leads to better customer satisfaction and loyalty.

  2. Increased Sales: UChat offers personalized product recommendations, upselling and cross-selling opportunities, and discounts to customers through automated chat interactions. This helps improve conversion rates and boosts revenue for your online store.

  3. Enhanced Customer Engagement: UChat creates a conversational and interactive shopping experience, allowing customers to ask questions, get recommendations, and receive personalized offers through the chatbot. This creates a more engaging and enjoyable shopping experience that encourages repeat purchases.

  4. Automated Messages: UChat enables you to send automated messages for abandoned carts, order confirmations, and order fulfillment notifications, keeping your customers informed and engaged throughout the purchasing process. This helps reduce cart abandonment and increases customer retention.

Overall, integrating UChat with your Shopify store empowers you with a powerful chatbot that improves customer support, increases sales, enhances customer engagement, enables automated messages, and provides valuable insights. This ultimately leads to a smoother shopping experience for your customers and helps you achieve business success in the competitive world of e-commerce.

...

Here is the overview of UChat integration with Shopify

Table of Contents

Video Courses & Templates

In this section, You will be able to learn a short mini course about UChat native integration with shopify, you can also download our ready to use template.

Here is a list of the video tutorials:

More details about the course, you can learn it here.

Create Shopify Private App

The integration with UChat will start with creating your own private app, it will takes you maximum 5 mins to do, simply follow our tutorials here to create your first private app

Install the Private App

After create your private app, you need to install to your shopify store, follow the instruction here.

Connect with UChat

After you install your private app to your shopify store, it’s time to connect with UChat. Follow the instruction here.

How to use Shopify Actions

Here is an overview on how to use Shopify actions, and you can find Shopify action in UChat → Action → Integrations.

Find more details information here.

Shopify Native Actions - Customers

In this section, we will talk about the “Customer” related actions. UChat support below customer related actions:

  • Search for Customers

  • Get customer information

  • Get customer orders

  • Get customer abandoned checkout

You can find more information here.

Shopify Native Actions - Products

In this section, we will talk about the “Products & Collection” related actions. UChat support below customer related actions:

  • Search for products

  • Get product information

  • Get product images

  • Get product variants

  • Search for custom collections

  • Search for smart collections

  • Get collection information

  • Get collection products

You can find more information here.

Shopify Native Actions - Orders

In this section, we will talk about the “Orders” related actions. UChat support below customer related actions:

  • Get Shop Information

  • Lookup discount code

  • Create discount code

  • Search for draft orders

  • Create draft orders for one product

  • Create draft order for multiple products

  • Create draft order with custom products

  • Send an invoice for the draft order

  • Apply discount to draft order

  • Complete draft order

  • Get draft order information

  • Get order information

You can find more information here.

Shopify Native Actions - Ecommerce

In this section, we will talk about the “Ecommerce” related actions. UChat support below customer related actions:

  • Add to Cart

  • Remove from Cart

  • Empty Cart

  • Get Cart Items

  • Create draft order From Cart

You can find more information here.

Shopify Native Actions - Meta Fields

In this section, we will talk about the “Meta Fields” related actions. UChat support below customer related actions:

  • Create Meta Field

  • Update Meta Field

  • Get Meta Field Information

  • Search Meta Fields

  • Delete Meta Field

You can find more information here.

Shopify Native 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.

You can find more information here.