🥞 Pancake Studio

A server that receives JSON payloads, flattens nested keys with underscores, and forwards the new payload to a Slack Workflow Builder webhook trigger.

Build Your Webhook URL

Optional Filters

Exact, case-sensitive matching

Enter one allowed value per line. Values for the same field use OR; separate fields use AND.

Flattened field names use only letters, numbers, hyphens, and underscores.

Provider component names are loaded directly from the selected status page.

Usage

  1. In Slack, go to ToolsWorkflow Builder and create a new workflow. Choose Webhook for the type.
  2. Add a second step (such as Send a Message to a person or channel).
  3. Publish the workflow to generate a URL beginning with https://hooks.slack.com/triggers/.
  4. Paste the complete URL into the builder above and optionally add filter criteria.
  5. Use the generated URL as the payload URL when setting up webhooks with third parties.
  6. Update the first step in your workflow to add the flattened variables (e.g. repository_full_name).

How It Works

Pancake Studio receives the payload and joins nested keys with underscores, which Slack supports in trigger variable names. If every optional filter criterion matches, it changes the hostname back to hooks.slack.com and forwards the flattened payload. Non-matches are acknowledged without forwarding. It is completely stateless—no payloads, filters, or webhook URLs are stored.

Keep the converted URL secret. Anyone who has it can send payloads to the associated Slack workflow.

Flat Payload Example

{
  "key1": { "keyA": "valueI" },
  "key2": { "keyB": "valueII" },
  "key3": { "a": { "b": { "c": 2 } } }
}

↓ becomes ↓

{
  "key1_keyA": "valueI",
  "key2_keyB": "valueII",
  "key3_a_b_c": "2"
}

Inspired by pancake-studio by Steve Gill.