Webhooks Whatsapp - status updates

Hi, I realized that you can create a filter to end a workflow early.

I ask - is it possible to create a filter for webhooks that does not start the run at all.

I created a webhook for whatsapp when I receive a message.

And the webhook runs 4 times, instead of once.

Because in addition to the message body, the webhook sends all kinds of status updates.

Status: read,
Status: Sent
Status: Delivered

And it’s just unnecessary.

I would like to create a filter for a webhook that will not work at all under certain conditions.

I checked, there is no option on the WhatsApp side to not receive these status updates.

Hi @rrbbtalnorth, I think you’re going to the right direction!

Here’s a good tutorial for Pipedream’s filter: Conditionally stop workflows with Filters - YouTube. I think it would help you with your usecase. Specifically, I would create a filter where it continue only for the Sent status for example

I did that, and indeed the workflow stopped,

But I want the workflow not to start at all.

I don’t want those webhooks to burn my runs.

Hi @rrbbtalnorth

For that case you can create a custom source that only emits new events to your workflows under certain conditions.

The filter would be at the source level, and not at the workflow level.

Follow our quickstart here to learn how to build a custom source:

Thanks, but it looks like I tried that too.

The programmer I hired today created webhooks in “Connected Accounts”.
and wrote a filter there at the source level.

But the problem is whatsapp didn’t get this webhook.

WhatsApp does not accept the “connected accounts” webhooks. While the “Webhooks” of “Workflows”
She did accept

Hi @rrbbtalnorth

I believe what’s happening is the service is attempting to validate that your webhook is verifying the token (115544).

You’ll need to add a step in your workflow to verify that the security token is correct, and if it’s not, then exit the workflow early and respond with a 401 status code.

Here’s an example HTTP workflow validating an incoming header against an environment variable:

Hi, for anyone interested in hearing what was the solution that suited me, I’d be happy to share
(It cost me two hours of training and consultation with a pipedream expert)

The solution is - through Hookdeck -

This is a third-party service that allows you to control conversations and characters.

You need to set up a filter name in Hookdeck that will forward only incoming messages to Pipedream
{entry": {“changes”: {“value”:{“messages”:{“type”: “text”}}}}}

I checked, and it works great