Form input schema differs between test and production

When starting with a form input step, the sample data comes inside a “body” object, like:

body:{
key1: value1,
key2: value2
}

So if I want to access that data in a subsequent step while testing I have to structure it like this:

{{trigger['body']['key1']}}

But in production that same data arrives without the body tag:

{
key1: value1,
key2: value2
}

And that subsequent steps breaks. So to function properly in production I have to remove “body” to get the subsequent step to work:

{{trigger['key1']}}

Worse still, this workaround only helps when I can access the form data in a json editor box. But if I’m trying to access it from an AP step that has native fields (like for example the File Helper’s “Content” or “File name” boxes) I can only use the sample data, which includes “body”, and therefore unusable in production.

@hanley , could you share the output of the Web Form trigger step? Also, which version of the piece is being used in the flow?

Version 0.4.2.

Test output:

{
  "method": "POST",
  "headers": {
    "connection": "Upgrade",
    "host": "cloud.activepieces.com",
    "content-length": "1470",
    "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
    "accept": "application/json, text/plain, */*",
    "accept-encoding": "gzip, br",
    "accept-language": "en-US,en;q=0.9,ja;q=0.8",
    "authorization": "Bearer [redacted]",
    "cdn-loop": "cloudflare; loops=1",
    "cf-connecting-ip": "68.100.169.173",
    "cf-ipcountry": "US",
    "cf-ray": "93b2ecb66ea9132e-LHR",
    "cf-visitor": "{\"scheme\":\"https\"}",
    "content-type": "multipart/form-data; boundary=----WebKitFormBoundaryTV5P54lgF2wyQ5bq",
    "cookie": "_ga=GA1.1.238120886.1718370462; cb_user_id=null; cb_group_id=null; cb_anonymous_id=%22dc120d40-9534-44b8-8e9d-0f2d8b64c4a0%22; _li_dcdm_c=.activepieces.com; _lc2_fpi=01fcb3a96660--01j0bdrv731tmtevs0nnkmaf98; _lc2_fpi_meta={%22w%22:1718370462947}; ajs_user_id=Ah66MtCjbWY7nRXoJ4SD3; ajs_anonymous_id=64145537-324a-4e94-b256-096f45f7efca; signals-sdk-user-id=92d7e105-138d-4306-9111-23efa37598f5; _fuid=NGMwM2QzZTItMWE5NC00ODNlLTgxMzQtZTczYzhhYTYwNzdl; _lc2_fpi_js=01fcb3a96660--01j0bdrv731tmtevs0nnkmaf98; _clck=12axfnu%7C2%7Cftm%7C0%7C1626; _ga_BL60V50BXE=GS1.1.1740105925.25.1.1740106624.0.0.0; ph_phc_7F92HoXJPeGnTKmYv0eOw62FurPMRW9Aqr0TPrDzvHh_posthog=%7B%22distinct_id%22%3A%22Ah66MtCjbWY7nRXoJ4SD3%22%2C%22%24sesid%22%3A%5B1746476281276%2C%220196a1cd-e0a5-7c2e-863b-20ebee9d6445%22%2C1746471346340%5D%2C%22%24epp%22%3Atrue%2C%22%24initial_person_info%22%3A%7B%22r%22%3A%22%24direct%22%2C%22u%22%3A%22https%3A%2F%2Fcloud.activepieces.com%2F404%22%7D%7D",
    "origin": "https://cloud.activepieces.com",
    "priority": "u=1, i",
    "referer": "https://cloud.activepieces.com/forms/2D4HoMBIfvLGHtCriAS7A?useDraft=true",
    "sec-ch-ua": "\"Chromium\";v=\"136\", \"Google Chrome\";v=\"136\", \"Not.A/Brand\";v=\"99\"",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "\"macOS\"",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "same-origin",
    "x-forwarded-for": "172.71.178.123",
    "x-forwarded-host": "cloud.activepieces.com",
    "x-forwarded-port": "443",
    "x-forwarded-proto": "https",
    "x-forwarded-server": "b615bda62598",
    "x-real-ip": "172.71.178.123"
  },
  "body": {
    "synthPatch (primer/syntorial)": "https://cloud.activepieces.com/api/v1/step-files/signed?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.eyJmaWxlSWQiOiJMTUFkY1Y5U0ExeTZ4bXU2Mk5XUTUiLCJpYXQiOjE3NDY0NzYyODEsImV4cCI6MTc0OTA2ODI4MSwiaXNzIjoiYWN0aXZlcGllY2VzIn0.PFJtWJO376YqrKQ2NDNIfWfKu5WA6M45zUn-RXoW40E",
    "patchName": "Young Franco - Miss You - Keys"
  },
  "queryParams": {},
  "rawBody": "------WebKitFormBoundaryTV5P54lgF2wyQ5bq\r\nContent-Disposition: form-data; name=\"synthPatch (primer/syntorial)\"; filename=\"Young Franco - Miss You - Keys - LESSON\"\r\nContent-Type: application/octet-stream\r\n\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n\r\n<Syntorial osc1Fine=\"0\" osc1PW=\"0.5\" osc2Fine=\"0\" osc2Semi=\"0\" osc2PW=\"0.25\"\r\n           oscMix=\"0\" subVol=\"-82\" noise=\"-82\" fm=\"0\" key=\"0\" cutoff=\"0.38\"\r\n           res=\"0.428\" fEnvAmt=\"0.74\" aFilEnv=\"0\" dFilEnv=\"750\" sFilEnv=\"0\"\r\n           rFilEnv=\"10000\" aAmpEnv=\"2\" dAmpEnv=\"650\" sAmpEnv=\"0\" rAmpEnv=\"200\"\r\n           aModEnv=\"0\" dModEnv=\"0\" mEnvAmt=\"0.5\" lfoRate=\"1\" lfoAmt=\"1\"\r\n           mainVol=\"-2\" porta=\"0\" velAmt=\"0\" mwAmt=\"0\" unisonSpread=\"1\"\r\n           unisonDetune=\"0.171\" distAmt=\"0\" chorusMix=\"0\" chorusRate=\"1\"\r\n           phaserMix=\"0\" phaserFeed=\"0.8\" delayMix=\"0\" delayTime=\"2\" delayFeed=\"0.5\"\r\n           delaySpread=\"0\" reverbMix=\"0.17\" reverbSize=\"0.5\" osc1Wave=\"2\"\r\n           osc2Wave=\"1\" subWave=\"2\" filterType=\"1\" mEnvDest=\"1\" lfoWave=\"2\"\r\n           lfoDest=\"1\" voiceCount=\"6\" unisonVoice=\"1\" mwDest=\"1\" velDest=\"1\"\r\n           pbRange=\"3\" osc1On=\"1\" osc2On=\"0\" ring=\"0\" sync=\"0\" start=\"0\"\r\n           lfoMono=\"1\" lfoPoly=\"0\" lfoTrig=\"1\" lfoSync=\"1\" unisonOn=\"1\"\r\n           mono=\"0\" legato=\"0\" poly=\"1\" version=\"2\"/>\r\n\r\n------WebKitFormBoundaryTV5P54lgF2wyQ5bq\r\nContent-Disposition: form-data; name=\"patchName\"\r\n\r\nYoung Franco - Miss You - Keys\r\n------WebKitFormBoundaryTV5P54lgF2wyQ5bq--\r\n"
}

Production Output:

{
  "synthPatch (primer/syntorial)": "https://cloud.activepieces.com/api/v1/step-files/signed?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.eyJmaWxlSWQiOiJGZUVOWkw5WWxvSzhSQzFiSnhXMlEiLCJpYXQiOjE3NDY0NzgxMjQsImV4cCI6MTc0OTA3MDEyNCwiaXNzIjoiYWN0aXZlcGllY2VzIn0.2Q95MhqXJUt6tclPho9dnTYAp2gts34HtpqJOvMuXtc",
  "patchName": "Young Franco - Miss You - Keys"
}