---
title: "Webhooks"
canonical: "https://help.liftoffcommerce.com/space/KB/2731540499/Webhooks"
format: markdown
---
A webhook is an event-driven integration feature that lets you instantly send data to any endpoint you specify when certain triggers in Liftoff are fired. Pairing this feature with no-code integration platforms like [Zapier](https://zapier.com) or [IFTTT](https://ifttt.com) provides you nearly effortless ability to take real-time action against activities occurring within Liftoff.

- You or your customer do something
- That “something” tells Liftoff to send data to another app
- That’s a webhook!

> ⚠️ <span style="color: #ff991f">**OData API actions currently do not trigger webhooks.**</span>
> ⚠️ 
> ⚠️ Webhooks are triggered whenever a relevant entity (like a customer, product, or order) is created, updated, or deleted, **unless** that change is made via the [Liftoff OData API.](https://liftoffcommerce.atlassian.net/wiki/spaces/KB/pages/2730557497)

## What’s a webhook for?

The possibilities for using webhooks are endless. Here are a few examples:

**Slack integrations**  
Do you need real-time visibility into activities such as customer, product, order, or shipment updates? When these events occur, webhooks can automatically send notifications to Slack, either directly via a Slack app endpoint or through an integration platform like Zapier.

**HubSpot / cloud CRM integrations**  
If you’re currently relying on data exports or even hand-entering data into your CRM platform, webhooks can easily automate your workflow and ensure that critical information such as new customer signups make their way seamlessly into your other systems.

**Cloud-based financial system integrations**  
Are you looking for a way to easily insert new order information into your accounting system? Use Liftoff’s webhook feature to inform your cloud-based finance platform when orders are created, updated, or even canceled. Additionally, Liftoff can inform your external system when payment has been authorized, captured, or refunded.

##  Webhook authentication

You may enable OAuth authentication if your webhook endpoints support (or require) OAuth authentication. To enable OAuth authentication, navigate to **Integration > Webhooks > Edit Webhook** in My Liftoff and tick the box labeled *Enable OAuth authentication.* You will be presented with the option to select either *Basic auth* or *JWT*.

### Basic auth token request authentication

When *Basic auth* is selected, you will then be prompted to fill out the following fields:

- Token Request URL
- Client ID
- Client Secret
- Scope  
This field is <span style="color: #ffc400">**OPTIONAL**</span>

### JWT token request authentication

When *JWT* is selected, you will then be prompted to fill out the following fields:

- Token Request URL
- Token Request Header
- Token Request Payload

You must specify implementation-specific values like `kid`, `iss`, and `aud` when configuring a webhook. Liftoff  then dynamically inserts the `iat` and `exp` values before encoding the header and payload using the specified algorithm and secret to generate the JWT to use for token requests. The JWT in the token request is sent to the specified token request URL; Liftoff then retrieves the OAuth access token from the response, and includes that OAuth access token in the request to the webhook endpoint. For more information, see the [NetSuite documentation](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_158255317571.html#subsect_160828987108).

Once OAuth authentication has been configured, we strongly recommend testing a request for that webhook to ensure authentication works as expected.

## Webhook validation

When receiving webhook data from Liftoff, it is important for you to be able to verify that the information came from us and is also exactly what was sent from us. To facilitate this, we have implemented a digital signature, or checksum of the data that is being sent for each webhook and are including this signature as a header in the HTTP Request that gets posted. It is then up to you to programmatically verify that the payload is valid and matches the signature. This can be done using the SecretCipherText that was provided when the webhook was created. 

For more information on the steps to validate webhooks, see our [how-to article](https://help.liftoffcommerce.com/space/HOWTO/2939191297/HOW+TO:+Validate+Webhooks).

## Working with webhooks

To get you up and running quickly with webbooks, we’ve prepared a quick tutorial on connecting Liftoff events to a [Slack](https://slack.com) channel using [Zapier](https://zapier.com). For this example, we’ll look for the creation of new customers in Liftoff, then ask Zapier to notify a Slack channel about this activity. A Zapier account and a Slack account will be required to complete this exercise.

**1: Create a new "Zap" in Zapier**  
Choose *Webhook* as the trigger step.

![image-20240308-191311.png](media://a96e6249-f9f2-47e9-82e7-2a7802539407)

**2: Choose *****Catch Hook***** as the trigger event**  
Catch hooks allow Liftoff to post information to a remote URL.

![image-20240308-191451.png](media://d60e8485-ea84-4a3c-b1b3-57e7387d96d9)

**3: Copy the provided webhook URL**  
This URL will be used to establish your webhook in Liftoff.

![image-20240308-191812.png](media://8de47523-87fe-4c52-a210-f8cde74953c0)

**4: Click *****Continue***  
Click the *Continue* button. The additional information Zapier requests for this step is optional.

**5: Create your webhook in Liftoff**  
To access webhooks, navigate to **Integration > Webhooks** within your Liftoff administrative menu. Click the *Add Webhook* button on the webhook landing page.

**6: Create your Webhook Trigger**  
For this example, use the following settings on the trigger setup screen:

- **Webhook name:** *New Customer Created*
- **URL:** Paste the URL from Zapier
- **Triggers:** Check *Customer created*

![image-20260901-202204.png](media://f8213b3f-58ec-49a4-8274-1ad5acc3e96d)

Click *Save & Create*. This will save your new webhook in Liftoff.

**7. Create a new customer in Liftoff**  
The trigger we created will inform Zapier that a new customer has been created in Liftoff. Creating this trigger will push the first test transmission to Zapier to confirm our connection was successful.

**8. Test your trigger**  
Once you’ve created a new customer in Liftoff, return to Zapier and click *Test trigger*. If successful, you should see something like the below. At the bottom of this page, click *Continue*:

![image-20240308-203325.png](media://5373dfe4-eaf4-43c3-ab3f-8d9573757df1)

**9. Next, let’s set up our Slack action.**  
Let’s choose *Send Channel Message* as the Action Event.

**10. Connect your Slack account to Zapier**  
If you haven’t already, you’ll need to connect your Slack account to Zapier. This tutorial does not address making that connection.

**11. Customize your messaging**  
Assuming you have connected an active Slack account to Zapier, you can continue customizing your message. Zapier will let you select variables from the webhook message to forward to Slack as a formatted message. Click *Continue* once you are satisfied with your settings here:

![image-20240308-203456.png](media://02499b48-a8c0-4cda-8c5a-1225f53db9bf)

**12. Test your integration**  
For our last step, we'll click the *Test & Continue* button and confirm our results.

![image-20240308-203754.png](media://430e92a5-a070-4b42-b63b-f566432c1bbd)

If your test succeeds, you should have a message similar to this appear in the channel or direct message you established in your Slack settings:

![image-20240308-204814.png](media://d4d84bc9-cf89-4c08-8c10-1f758e53c7f0)

## What's next?

Again, what’s next mostly relies on your imagination and how you’d like to see your data interact with your other platforms and systems. Over time, the list of available trigger types will expand to eventually cover almost any event that takes place within Liftoff. Until then, please reach out to your account management team for assistance using this feature. We look forward to seeing what you create using this powerful new toolset.