Can't get AWS SNS to work with Workflows

Has anyone had any luck creating an AWS SNS topic and sending notifications to Workflows? In AWS, I've created a HTTPS subscription for a SNS topic and used my Workflow's webhook URL as the endpoint.

Apparently AWS sends a POST request to the endpoint with headers and a JSON body that needs to be parsed. The POST request is hitting the workflow but I'm not seeing any data coming through, startTrigger.data and startTrigger.headers are undefined and startTrigger.metadata is empty.

Hello @Nick01!

I had another user with a similar issue, I believe that workflow triggers can only take in data from the body of the request and not the headers :sweat_smile:

I can double check on that, as I might have made a feature request for allowing the webhook trigger endpoints to allow of headers but don't remember hearing back on it.

One option would be to try having a proxy forward the data from AWS to the webhook.

Hi @Jack_T,

Thanks for the response. It was weird, I couldn't even get the body data from the AWS SES request (I've never had that problem before).

I ended up setting up Zapier as a proxy and it's working.

That's very odd, I have had one other user have trouble with getting data into workflows but couldn't reproduce it.

It could be something with how AWS SES is sending the data out but you also mentioned you didn't have this problem before. Maybe it was a patch/update to the workflows that changed this :thinking:

Glad you were able to get it working with Zapier as a proxy! Was there any additional logic you had to run on that side/did you move the data from the header to the body or anything like that?

Yeah, I think it's something with the way AWS SNS is sending data.

I actually don't think I even ended up using the headers. AWS makes everything more complicated. To set up a SNS subscription, AWS initially sends your endpoint a key that you have to copy over to AWS to confirm that you manage the endpoint. After I did that with Zapier and SNS it was pretty easy just forwarding the data that I actually wanted into the workflow.

1 Like