Before you start: make sure you have a Slack workspace where you can install an app (or ask an admin), and a form on your Hiveku project that you can wire a webhook to.
The Flow at a Glance
1. Slack webhook
Create an incoming webhook URL in Slack
2. Hiveku workflow
Webhook trigger + HTTP action
3. Form wiring
Point the form’s submit to the trigger URL
Step 1: Create an Incoming Webhook in Slack
Create a new Slack app
Go to api.slack.com/apps and click Create New App > From scratch. Give it a name (like
Hiveku Leads) and pick the workspace you want it installed in.Enable incoming webhooks
In the left sidebar, click Incoming Webhooks and toggle Activate Incoming Webhooks to On.
Add a webhook to your workspace
Scroll down and click Add New Webhook to Workspace. Pick the target channel (e.g.,
#leads) and click Allow.Step 2: Create the Hiveku Workflow
Open Workflows
In your Hiveku project, go to Workflows > New Workflow. Name it
Form Submission → Slack.Add a Webhook trigger
Click Add Trigger and choose Webhook. Hiveku generates a unique webhook URL — copy it, you’ll wire your form to it in the next step.
Add an HTTP Request action
Click + Add Action > HTTP Request. Configure it:
- Method: POST
- URL: paste your Slack webhook URL
- Headers:
Content-Type: application/json - Body:
Step 3: Wire Your Form to the Trigger
How you point your form at the trigger URL depends on how your form is built. See the Workflows overview for the full list of options.- Native Hiveku form
- Custom code form
- Third-party form
Open the form in the content editor, scroll to Submission Settings, and paste the trigger URL into POST to webhook.
Referencing Form Fields
Inside the HTTP Request body, use{{trigger.fieldName}} to pull values from the submission. If your form POSTs { "name": "Ada", "email": "ada@example.com", "message": "hi" }, then {{trigger.name}} renders as Ada.
Fallbacks use the || operator:
Richer Slack Formatting
Plaintext works fine, but if you want buttons, dividers, or multi-field layouts, use Slack’s Block Kit:
Test It
Troubleshooting
No Slack message arrives
No Slack message arrives
Three common causes: (1) the workflow isn’t enabled — toggle it on; (2) the Slack webhook URL is wrong or deleted in Slack — regenerate it in api.slack.com/apps > your app > Incoming Webhooks; (3) the trigger never fired — check the workflow’s Runs tab, and verify your form is POSTing to the correct trigger URL.
Message formatting is broken
Message formatting is broken
Slack returns
invalid_payload when the JSON is malformed. Quotes and newlines inside form values need escaping. Wrap user-submitted text in the template with safe substitution, or use Block Kit sections which are more forgiving.Slow delivery or dropped messages
Slow delivery or dropped messages
Slack webhooks are rate-limited to roughly 1 message per second per webhook. If you’re seeing bursts (e.g., after an ad campaign), add a queueing step or batch submissions into a single message every minute.
Wrong channel
Wrong channel
Each Slack incoming webhook is bound to a single channel at creation time. To post to a different channel, create another webhook in Slack (Incoming Webhooks > Add New Webhook to Workspace) and update the URL in your HTTP action.
Want to route messages by form type?
Want to route messages by form type?
Add a Conditional step before the HTTP action that branches on
{{trigger.form_name}} or similar. One branch posts to #sales, another to #support.What’s Next?
Workflows Basics
How triggers, actions, and runs fit together
Leads → CRM Workflow
Sync submissions straight into your CRM