A better way to update your tools with the new Outgoing Webhooks

Hi, dear Customer! 👋

One of the great strengths of the Hull platform is it's ability to perform realtime, streaming segmentation and react on the segment changes, attribute changes, and new events to notify various destinations.

For a while we had support for updating destination tools through our custom connectors, and also the ability to emit webhooks to any destination. This worked but was pretty cumbersome, as the payload was fixed and you needed yet another intermediary layer to process the data we sent and adapt it to your needs. It also made it impossible to directly update a given service with the payload it expected.

This all changes now.

Starting Today, we're happy to announce that our Outgoing Webhooks connector that a lot of you have been using has been rewritten from the ground up, in order to address your requests and needs. This isn't just a technical rewrite, but a full rebuild that offers a huge improvement in your ability to manage customer data. Let's see what it offers:

Customizable Payloads

You asked many times for the ability to customize the data that was sent out, and we delivered on this. You can now define exactly the data format that you want to generate, using an amazingly simple transformation language called Jsonata: https://jsonata.org. We encourage you to go and check it out. It's super simple to use, and allows for precise and fast building of the payloads that you need to send to external services.

To enable you to do this, we have built a completely new UI. The new UI looks a lot like the one you have been using with the Incoming Webhooks, Scheduled Calls, and Processor connectors, but instead of Javascript (which would have been rather tedious) we went a step further and exposed JSONATA as an even easier way to build your payloads.

It couldn't be easier to craft the payload you need to send


Simpler Trigger and Filters

To go with this, we completely rebuilt the settings so that it is easier to define which events should be emitted. Checkout the screenshot below, it's pretty self-explanatory:


Support for Headers

We heard a lot of requests regarding how to secure outgoing webhooks and pass custom information.

To do this, we added support for HTTP Headers.

HTTP headers are the simplest and most secure way to pass things such as a secret key that you would use to validate that data is indeed coming from us, but it's not their only use case. There are plenty of reasons why you would want to pass custom headers (including requirements to directly send data to a 3rd party service that would require them). We support this now.

We also reworked the settings for rate limiting and throttling to be more explicit.


Simplified Support for Accounts and Users, More granular configuration

To make the connector simpler to use, we have split its responsibilities across two unique connectors, Outgoing User webhooks and Outgoing Account webhooks.

The connector also only sends to one URL now, as opposed to sending the same payload to multiple URLs with the same connector. We found this was the source of hard-to-track edge cases, and made it harder to understand if one specific service had error responses. We encourage you to now have one connector per data type and per destination.

How to upgrade.

Those connectors are available in the gallery today. Since they are completely different in their usage from the legacy connector, there is no automatic upgrade path. You will need to install those connectors separately and migrate your setup. Thankfully, those new connectors are way simpler to setup, so this part should be a breeze!

Of course, we are here to help you migrate should you need to do so (we're sure you will want to!).

Note: If you're on a legacy plan, and you're concerned with the fact this will add a new connector to your plan, We have rolled out new plans with unlimited connectors! we are happy to discuss moving you to these plans - they're more advantageous on every aspect!. Don't hesitate to contact us about this!