Skip to main content
6. Webhooks

A guide to setting up product and order webhooks for your checkout instance

Support @ BeSimplified avatar
Written by Support @ BeSimplified
Updated this week

Setting up product webhooks allows your checkout to send product data back to your ecommerce store. You can also set up order webhooks to send order data back to your ecommerce store via your CRM.

Product Webhooks

To set up product webhooks, first, go to your Shopify dashboard and head to Settings > Notifications > Webhooks

Click Create Webhook and select the Product creation event.

Then copy the Product creation URL from Simplified Checkout and paste it into the URL field in Shopify.

Choose the (Latest) API version and then click Save.

Now create another webhook for Product update.

Once saved, your Webhooks list in Shopify should look like this:


Order Webhooks

Order webhooks allow you to send order data from your CRM to an ecommerce store, vice versa, or even both ways.

You can start by going to the Orders tab in Webhooks.

Webhook Sync Settings

For new Instances, you'll see an empty list with no webhooks. Click the Sync Settings to configure the order data you want to sync and how it will flow.

We recommend enabling the settings above for your Order webhooks to sync properly.

We'll go over order-related data types you can sync. By default, the data sync will go both ways between your CRM and ecommerce store. Also, only successful orders are synced by default.

  • Bidirectional (Default): Order data will be synced and updated in both your CRM and ecommerce store. That means if there are changes in your CRM order record, then the same order record in your store will be updated as well.

  • CRM to Store: Order data will be synced one way only. Your store will retain the most updated order records, as updated order data does not return to your CRM.

  • Store to CRM: Order data will be synced one way only. Your CRM will retain the most updated order records, as updated order data does not return to your store.

We recommend keeping the default Bidirectional setting. Next, you can select the optional order data that will be synced.

  • Sync Data Types:

    • Prospect: Sync customers who abandoned their cart during checkout, and partially filled the form.

    • Declined Orders: Sync orders that were declined for various reasons

    • Successful Orders (Enable): Sync all successful orders including any upsells, downsells, and cross-sells. Optionally you can sync tax information if you have it set up in the Instance Settings area.

  • Order Syncing:

    • Initial Orders (Enable): Sync one-time purchases and the first order in your subscription chain.

    • Recurring & Subscription Orders (Enable): Recurring subscription orders created by your CRM.

  • Sync Order Activities:

    • Order Cancellation: Sync orders or subscriptions with "Cancellation" statuses

    • Order Hold: Sync orders or subscriptions with "On Hold" status

    • Order Refund: Sync orders or subscriptions with "Refunded" status

    • Order Void: Sync orders or subscriptions with "Void" status

    • Tracking Update: Sync orders or subscriptions with updated shipment tracking information.

  • Additional Settings:

    • Allow UTF-8 Character Encoding (Enable): Enables UTF-8 support for any Unicode character with special characters or symbols.

    • Sync Order Type (Enable): Adds a tag in your ecommerce store labeling an order as either "Initial" or "Subscription" for any future recurring orders created by your CRM.


Notification Settings

Select whether you want to send order notifications to your customers from your store or CRM.


Custom Fields Sync

If you have custom fields in your checkout and CRM, you can sync them with your ecommerce store as a tag.

To find your Custom Field ID in Sticky.io, go to Settings > Custom Fields

Then enter the ID(s) you want to sync to your store.

Please note only Order entity type fields can be synced.

If your custom field is a static value e.g. Add Gift, enter the value into the Store's Tag Name field.

If your custom field is a dynamic value (user input) e.g. Engraving Message, check the "Dynamic" option.

Once you're done with the sync settings, click Save and head back to the webhooks listing area.


Adding Webhooks in Sticky.io

Now that your sync settings are configured, let's add the following webhooks to Sticky.io.

From your Sticky.io dashboard, go to Settings > Post Back.

Under the Actions dropdown, click Create.

Now we add a post back for each Simplified Checkout webhook.

Copy the following settings from the images below for each event.

Order Creation

Some additional steps are required for the Order Creation webhook.

After copying the settings in the image below:

1. Click View Tokens / Build URL and check all the Tokens. You do not need to select any Custom Field tokens.

2. Find the order_id token and replace it with sticky_order_id

3. Scroll down and click Save on the modal, then save this post back.

Prospect Creation

Tracking Update

Order Void

Order Refund

Order Hold

Order Cancellation

Once you've created the postbacks in Sticky.io for each webhook, you're good to go!


Adding Webhooks in Vrio

Now that your sync settings are configured, let's add the following webhooks to your Vrio.

From your Vrio dashboard, go to Settings and scroll down to Connections

Click Add Connection in the top right corner, and go to the Other tab.

Then connect with Webhooks.

Now we connect a webhook for each Simplified Checkout webhook.

Copy the following settings from the images below for each event.

Order Creation

Prospect Create

Tracking Update

Order Void

Order Refund

Order Hold

Order Cancellation

Once you've created postbacks in Vrio for each webhook, you're good to go!


Klaviyo Events / Webhooks (For Abandoned Carts)

Integrate Klaviyo to sync your abandoned cart data and send notifications to your prospects or customers.

Before you're able to sync abandoned carts with Klaviyo, you must Install and configure the Abandoned Cart Capture extension.

Adding the Klaviyo Service

To connect Klaviyo with your checkout, first go to the Events area to add the Klaviyo service.

Next, select the checkout instance(s) for which you want to connect with Klaviyo.

Fill out the Klaviyo Public API Key and Private API Key fields.

If you don't see your Klaviyo Private API Key, you can create one by clicking Create Private API Key and selecting Full Access.

Enter the Klaviyo List IDs where your Prospects, Customers, and Orders will go.

You can create a new Klaviyo list under Audience > Lists & Segments.

We recommend creating a list for:

  • Prospects

  • Customers

  • Orders

To find your List ID, click on your associated list and go to the Settings tab.

After filling in your list IDs, go to the next step and map any custom fields you have created in your checkout instance. Otherwise, you can skip this step and Save.

Mapping Custom Fields with Klaviyo

Start by clicking Add Field. Select your Custom Field and enter your associated Klaviyo Field.

You can find/create your Klaviyo Field field by clicking on the list where your custom field data will go.

From the Import tab click Import Contacts and upload a CSV file containing the custom field information.

In this step, map the correct CSV fields with the Klaviyo fields.

For Simplified Checkout custom fields, you'll need to click Create New Field and select the relevant data type for your custom field.

Enter the Profile property name into Simplified Checkout and click Save & Integrate.

Adding Klaviyo Webhooks to Sticky.io

Now head to Webhooks in your checkout instance and click the Klaviyo tab.

Create a Post Back in Sticky.io for each Klaviyo Webhook.

Copy the following settings from the images below for each event

Please remember to click View Tokens / Build URL and select all tokens (excluding Custom Fields) before saving your Post Backs in sticky.io.

Cancelled Subscription

Updated Subscription

Refund

Cancelled Order

Fulfilled Order

Placed Non-Recurring Order

Once you've added all the Klaviyo Webhooks, you're good to go!

Did this answer your question?