Skip to main content
Ingrid is a delivery experience platform, making shopping stress-free for the consumer. Ingrid helps retailers simplify shipping, reduce costs, and offer more delivery options, such as real-time shipping updates, home delivery, pick-up points and lockers. This streamlined approach reduces cart abandonment rates and ensures timely deliveries, enhancing overall customer satisfaction. Ingrid operates in over 170 countries. The standard integration between Ingrid and Voyado Engage offers retailers access to relevant shipping data via the same tool they use for communication to customers. Engage users gain full control of the exact delivery status and can personalize communication, saving them time and money. Some user stories are:
  • Keeping customers updated during shipping phase via email and/or SMS
  • Displaying data relevant data from Ingrid for the shipping experience
  • Creating customers in Engage from Ingrid if needed

Ingrid’s documentation

Ingrid maintain their own integration docs for this integration:
https://mintcdn.com/voyado-partners/0IxEIB2Y6a--gNYY/icons/help-center-link.png?fit=max&auto=format&n=0IxEIB2Y6a--gNYY&q=85&s=4e7f518f776580d7cdae461a964ea2dc

See Ingrid's integration docs

Integrating Ingrid

Once Ingrid and Engage are configured, the integration is done as described below.

Posting an order

Orders are posted by Ingrid to the Engage v2 endpoint:
POST api/v2/orders
You can see in the example below the orderStatus from Ingrid in the payload, along with other useful information in extraData such as TrackingLinkHTML and TrackingNumber.
{
  "contact": {
    "matchKey": "person@test.com",
    "matchKeyType": "email"
  },
  "orderStatus": "Ingrid - Submitted To Carrier",
  "orderNumber": "8000612",
  "createdDate": "2024-08-26T07:42:49Z",
  "paymentStatus": "PAID",
  "shippingDate": "0001-01-01T00:00:00Z",
  "currency": "EUR",
  "language": "en-GB",
  "totalGrossPrice": 4000,
  "freightFee": {
    "value": 500,
    "tax": 0
  },
  "extraData": {
    "BillingAddress_City": "Amsterdam",
    "BillingAddress_Country": "NL",
    "BillingAddress_Email": "ustomer@test.com",
    "BillingAddress_FirstName": "Test Customer",
    "CarrierName": "DHL Express",
    "DeliverySenderName": "SE warehouse",
    "DeliveryType": "UNKNOWN",
    "DestinationAddress_City": "Amsterdam",
    "DestinationAddress_Country": "NL",
    "EstimatedDeliveryDate": "2024-08-28T00:00:00+02:00",
    "ParcelsCount": "1",
    "PaymentMethod": "",
    "TrackingLinkHTML": "https://tracking-stage.ingrid.com/en-GB/cmVzb3VyY2VfdG9rZW46ZDI0NTkxNTI1MzBkNGYxZThjMDA0MWM5NzViZWViMmM",
    "TrackingNumber": "3SHM00008734785",
    "TrackingStatus_Step": "STEP_SUBMITTED_TO_CARRIER",
    "TrackingStatus_Time": "2024-08-26T11:03:59Z"
...
This order data can then be used to trigger an automation.

Creating a contact

It can happen that an order is posted to the Engage API but the contact doesn’t exist in Engage. A 404 response is then returned. If this happens, Ingrid will create the contact in Engage using this endpoint:
POST /api/v2/contacts
And with this sort of payload:
{
  "email": "john.fellow@example.com",
  "mobilePhone": "+48519157444",
  "firstName": "John",
  "lastName": "Fellow",
  "contactType": "Member"
}
After this, the order will be posted again to the /orders endpoint. The default contactType is “Member” but this can be changed to whatever the merchant wants.

Building the automation

There needs to be an automation in place to handle incoming orders. This automation will handle the various orderStatus values from Ingrid. To do this, you can have a value split in the automation to branch off the different order status values to send different emails, based on a contact’s current order status.

Building email templates

Create a specific email template for each order status you are going to handle. Use existing templates or design new ones with all relevant information and consistent branding and visuals. Use [[order.ExtraData.TrackingLinkHTML]] in your email module to embed the TrackingLinkHTML page code provided by Ingrid in the order. This will embed HTML into the email which shows the package’s location. The [[order.ExtraData.TrackingLink]] value, if it exists in the order data, can also added to the email as a link to take the customer to Ingrid’s own tracking page for the item.

Frequently asked questions

Here are some common questions related to this integration.

Why not use the v3/orders endpoint?

To build the integration as quickly as possible, the v2 endpoint was used, since the v3 endpoint was undergoing changes and iterations . However the v3/orders endpoint will be used in phase 2.

Can I choose which statuses to handle from Ingrid?

Yes. you can choose, but the recommendation is to configure Engage to accept them all, and then decide in the automation engine what statuses to actually use.

Can I use product images in the emails triggered by Ingrid?

Yes, if an imageUrl for the item is provided in the order payload.