Sync Abandoned Orders with your CRM and Marketing Apps

Viktor Ristic
Viktor Ristic
  • Updated

Overview

gaiia can automatically track and report on checkout orders that were abandoned before being submitted. These are called Abandoned Orders.

Orders are marked as abandoned if they were started (right after the Enter your email step) but not submitted within a specific delay. By default, this delay is set to 24 hours.

When an order is considered abandoned:

  • A new entry is created in the Abandoned Orders view
  • A webhook event is triggered

You can use this data to retarget potential subscribers through your marketing platform. This article covers why you might want to do this, how to set it up with gaiia's native Klaviyo integration, and how to connect other popular platforms such as HubSpot, Salesforce Marketing Cloud, Mailchimp, and ActiveCampaign using the abandoned order webhook event.

 

Why connect abandoned orders to a marketing platform

A customer who started checkout but never submitted their order is one of the warmest leads you have: they found your offer, picked an address, and entered their email before dropping off. Pushing abandoned order data into your marketing platform lets you act on that signal instead of losing it.

Common use cases include:

  • Triggering an automated recovery email or SMS flow that invites the customer to finish their order, using the resume order link included in the webhook payload
  • Building a segment or list of abandoned checkouts for win-back campaigns and promotions
  • Measuring drop-off and recovery rates as part of your acquisition reporting

Only target customers who accepted marketing communications. gaiia's native Klaviyo integration filters this automatically; if you build your own webhook-based integration with another platform, your integration must filter on the consentsToMarketingCommunications field included in the webhook payload.

 

About the abandonment delay

By default, an order is considered abandoned after 24 hours of inactivity.

  • This delay is not configurable from the Admin yet.

 

Klaviyo (native integration)

If you're using Klaviyo, you can connect your account to gaiia to automatically push new abandoned order data to a Klaviyo list. Only customers who have accepted marketing communications will be pushed.

A. Requirements

B. Setting up the integration

  1. In gaiia, go to Settings → Integrations.
    Under Add directory and install the Klaviyo integration.
  2. Enter your Klaviyo API key to authorize the connection.
  3. Once installed, go to the List ID configuration tab.
  4. In the Abandoned Cart List ID field, paste your Klaviyo List ID and click Save.

After setup, all new abandoned orders (from users who gave marketing consent) will be automatically sent to your specified Klaviyo list. This allows you to retarget customers through Klaviyo flows.

Only customers who accepted marketing communications will be pushed to Klaviyo.

 

Connecting other marketing platforms

gaiia does not currently offer native integrations for platforms other than Klaviyo. However, since a webhook event is triggered every time an order is considered abandoned, you can connect any platform that can receive webhooks or be reached through its API.

The webhook event triggered is order.abandoned. It occurs when an order becomes abandoned after the specified delay. For full details, see the order.abandoned event reference in gaiia's webhook documentation.

The event payload contains the following fields:

Field Type Notes
abandonedSince string When the order was marked as abandoned
consentsToMarketingCommunications boolean Whether the customer accepted marketing communications — filter on this field
createdAt string When the order was started
email string The customer's email address
firstName string (optional)  
lastName string (optional)  
languagePreference string Useful for sending recovery messages in the customer's language
orderId string  
resumeOrderUrl string (optional) A link the customer can follow to resume their checkout — ideal for recovery emails

There are two patterns, depending on the platform:

  • Direct webhook — the platform can receive incoming webhooks natively, so gaiia's webhook event can point at it directly (e.g., HubSpot)
  • Via middleware — the platform only exposes a REST API, so a middleware layer (an automation tool such as Zapier or Make, or a small custom service) receives gaiia's webhook and calls the platform's API (e.g., Salesforce Marketing Cloud, Mailchimp, ActiveCampaign)

The third-party steps below are taken from each platform's official documentation. Platform interfaces, plan requirements, and API behavior can change — always refer to the linked vendor documentation as the source of truth.

 

A. HubSpot

HubSpot can receive incoming webhooks directly and use them to enroll records into a workflow, using the When a webhook is received workflow trigger.

Per HubSpot's documentation, this trigger requires a Data Hub Professional or Enterprise subscription. The workflow only triggers if an existing record with a corresponding unique property value exists in your HubSpot account, and incoming data must be sent with the application/json content-type.

To trigger a HubSpot workflow from gaiia's abandoned order webhook:

  1. In your HubSpot account, navigate to Automation → Workflows.
  2. Click the name of an existing workflow or create a new workflow.
  3. If creating from scratch: in the left panel, expand the Custom events & external events section, then click Received a webhook from an external app.

    On an existing workflow, click the Trigger enrollment for [object] card, then under Advanced options click When a webhook is received.

  4. Click + Add a webhook and add a Webhook event name, then click Next.
  5. Copy the webhook URL provided by HubSpot and configure it as the destination for gaiia's abandoned order webhook event, then send a test event.
  6. Review the test event in the Review your test event section and click Next.
  7. Map the webhook properties (edit the HubSpot property labels and select a data type for each), then click Next.
  8. Match your enrollment property by selecting a webhook property that exactly matches one of your HubSpot custom properties, then click Next.

    The custom property must have the Require unique values for property checkbox selected, and the webhook property must have a non-empty value in the incoming data.

  9. Click Continue to trigger setup.
  10. Click the name of the webhook in the left panel, then click Save.

Once active, each abandoned order webhook can enroll the matching contact into the workflow, where you can send recovery emails, update properties, or add the contact to lists.

 

B. Salesforce Marketing Cloud

Salesforce Marketing Cloud Engagement does not receive arbitrary incoming webhooks. Instead, external systems insert contacts into a journey by calling the Marketing Cloud REST API to fire an entry event against an API Event entry source in Journey Builder. A middleware layer is required between gaiia's webhook and the Marketing Cloud API.

The setup, per Salesforce's documentation, has three parts:

  1. Create API credentials. In Marketing Cloud Setup, go to Apps → Installed Packages, create a package, then add an API Integration component to obtain a client ID and client secret for OAuth 2.0 authentication.

    This requires the Installed Package > Administer permission. See Create and Install Packages and API Integration.

  2. Create the journey. In Journey Builder, create a journey from scratch, add the API Event onto the canvas as the journey's entry source, open the entry source, and copy the Event Definition Key. Configure the journey activities, then save and activate the journey. See Salesforce's API Event Entry Source Use Case.
  3. Fire the entry event from your middleware. When gaiia's abandoned order webhook fires, your middleware authenticates with the OAuth credentials and sends a POST request to the /interaction/v1/events REST endpoint, including the contact key, the Event Definition Key, and any event data required by the journey. See Fire the Event.

Once active, each abandoned order can enter the matching contact into the journey, where Marketing Cloud handles the recovery messaging.

 

C. Mailchimp

Mailchimp does not receive arbitrary incoming webhooks. Contacts are added to an audience through the Mailchimp Marketing API, so a middleware layer is required between gaiia's webhook and Mailchimp.

You will need:

When gaiia's abandoned order webhook fires, your middleware calls Mailchimp's Add member to list endpoint (or Add or update list member to upsert) to add the customer to your audience. From there, you can trigger Mailchimp automations or segment the audience for recovery campaigns.

Per Mailchimp's documentation, marketing consent must be accurately mapped to the contact's status when adding members through the API.

 

D. ActiveCampaign

ActiveCampaign does not receive arbitrary incoming webhooks. Contacts are created and subscribed to lists through the ActiveCampaign API, so a middleware layer is required between gaiia's webhook and ActiveCampaign.

You will need:

When gaiia's abandoned order webhook fires, your middleware calls ActiveCampaign's Create a contact endpoint, then subscribes the contact to your list with the Update list status for a contact endpoint. From there, list subscription can trigger your ActiveCampaign automations for recovery messaging.

Per ActiveCampaign's documentation, each user in your account has their own API URL and key. If integrations are set up with a user's credentials, deleting that user will cause the integrations to break.

Related to

Was this article helpful?

Have more questions? Submit a request