I have a webhook setup that sends data from Zapier into my Keen analytics stream. The problem I’m facing is that my numeric values are being sent as strings instead of numbers. For instance, when I send a value of 50, it appears in Keen as {“price”: “50”}, rather than {“price”: 50}. This is problematic because I need these values to be actual integers for calculations and filtering. Has anyone found a way to make Zapier or Keen treat these numeric strings as real integer values? I’ve tried several methods, but none have succeeded.
Been fighting this same issue for years across different analytics platforms. It’s not just Zapier - most webhook systems mess up data types.
Skip the formatters and code steps that break when your data changes. I built a flow that grabs webhook data, finds numeric patterns automatically, converts them to integers, and sends clean data wherever you need it.
Set it once, forget it. No manual formatter steps for each field. No breaking when you add new numeric fields. Just clean integers flowing where they should.
This saved me tons of debugging time across multiple projects. Way more reliable than hoping Zapier’s formatters actually work.
Check out the automation approach here: https://latenode.com
This string conversion thing gets super annoying with large datasets. Hit the same wall building real-time dashboards. Instead of wrestling with Zapier, I intercepted the data at the API level. Built simple middleware that sits between Zapier and Keen - catches the webhook, uses regex to find numeric patterns, converts to integers, then passes everything to Keen. It handles validation automatically and logs any conversion failures. Best part? Updates to either platform won’t mess up your data since the conversion logic lives separately. You also get way better error handling when weird non-numeric stuff slips through.
zapier’s webhook payload parser is doing this - it wraps everything in quotes by default. here’s what worked for me: add a code step with simple javascript like parseInt(inputData.price) before sending to keen. way easier than using multiple formatter steps and you can handle several fields at once.
This happens because Zapier treats all webhook data as strings, no matter the original format. I hit the same issue last year when connecting multiple analytics platforms. Here’s what fixed it for me: add a “Numbers” formatter step before sending to Keen. Use “Convert Text to Number” for each numeric field - this forces the conversion before hitting Keen’s API. You’ll need multiple formatter steps if you’ve got several numeric fields, but it’s worth it. Just put these formatters right before your Keen step. One heads up though - make sure your source data doesn’t have any non-numeric characters or the formatter will break.
You can fix this right in the webhook setup. When you configure your Zapier webhook, modify the payload to cast numbers before sending. Don’t send raw field values - wrap numeric fields with parseFloat() or parseInt() in the webhook body. Change {“price”: {{field_value}}} to {“price”: parseInt({{field_value}})}. This converts the type at the source before it hits Keen. I found this trick after dealing with flaky formatter results on a client project. The webhook runs the JavaScript inline and sends proper integers. Way cleaner than adding extra steps that break when your data structure changes.
Had this exact problem six months ago with our Zapier-analytics setup. Zapier converts everything to strings by default, no matter what type it actually is. Instead of fighting with Zapier’s conversion tools (they’re inconsistent anyway), I handled it on the Keen side. Set up a preprocessing function that catches numeric strings and converts them to integers before they enter the main stream. Keen’s data enrichment rules can detect number patterns and auto-convert them. Way more reliable than Zapier’s formatting options, and you don’t have to change your existing workflow.