Search code examples
zapier

Sending non-ascii characters to a Zapier catch hook


A zapier web hook has been set up to catch JSON sent to it.

The issue is that if the JSON contains any non-standard characters, e.g. accented characters, the hook never catches the data (no error is displayed, it just doesn't log anything).

Id the catch hook is switched to a 'catch raw hook' then the data is received, but I then don't know how to transform the raw data into JSON for future steps. With the catch raw hook the data caught is e.g. as follows (with a special char ø in the name value):

raw_body
  [{"id":2426,"name":"James Hømmett"}]
headers__http_host
  hooks.zapier.com
headers__http_x_request_id
  b8578a4455fea95c3287e939e304752c
headers__http_x_real_ip
  [redacted IP address]
headers__http_x_forwarded_for
  [redacted IP address]
headers__http_x_forwarded_host
  hooks.zapier.com
headers__http_x_forwarded_port
  443
headers__http_x_forwarded_proto
  https
headers__http_x_scheme
  https
headers__http_x_original_forwarded_for
  [redacted IP address]
headers__content_length
  559
headers__http_accept_encoding
  gzip,deflate
headers__content_type
  application/json; charset=utf-8
headers__http_user_agent
  Apache-HttpClient/4.5.13 (Java/11.0.9.1)

As you can see charset=utf8 is specified in the content-type header.

The JSON validates with jsonlint.com

Any ideas?


Solution

  • If you're on a paid account, you can add a Code by Zapier step that returns JSON.parse(inputData.raw_body), so that the data is available in future steps.

    But, not handling non-ascii characters is likely a bug, so it's worth reaching out to support if you haven't already: https://zapier.com/contact