Integration Tutorial

How to Connect Slack Forms to Form2Lead

Step-by-step developer instructions for Slack applications.

Last updated:
Direct Answer

How do you send Slack form submissions to Form2Lead?

Enable your form’s HMAC-signed outbound webhook and forward it through a Slack incoming webhook, Zapier, Make, n8n, or a small worker that maps the JSON payload to Slack’s message format. Each form has its own webhook URL, so the contact form can post to #sales while the support form posts to #support.

Verified product capabilityRead documentation →

Why use Form2Lead with Slack?

Form2Lead has no built-in Slack alert, so the reliable path is a webhook bridge: Form2Lead POSTs signed JSON for every valid submission, and an intermediary — a Slack incoming webhook plus a small transform in Zapier, Make, n8n, or your own worker — posts it to the channel within seconds. Verifying the HMAC signature in the intermediary confirms each POST genuinely came from Form2Lead before it reaches your team, and automatic retries with backoff cover transient Slack outages.

Prerequisites

  • ✔A Slack workspace where you can create an incoming webhook
  • ✔A Form2Lead form with webhooks enabled
  • ✔A Zapier / Make / n8n account or a small worker (for the transform step)

Step-by-Step Integration Guide

01. Create a Slack Incoming Webhook

In Slack, create an app at api.slack.com/apps, enable Incoming Webhooks, and add one for your target channel. Copy the webhook URL and treat it as a secret — anyone holding it can post to your channel.

02. Point Your Form2Lead Webhook at the Bridge

In your form’s settings, add the webhook URL of your intermediary (the Zapier / Make / n8n catch hook, or your own worker that forwards to the Slack URL). Form2Lead signs every payload with HMAC and retries delivery automatically with backoff.

03. Map the Payload to Slack’s Format

No-code: use a webhook trigger, map the name / email / message fields, and add a Slack “send channel message” action. Code-first: put this minimal worker between Form2Lead and Slack — and verify the HMAC signature header before trusting the body.

export default {
  async fetch(request, env) {
    if (request.method !== 'POST') return new Response('ok');
    // Verify Form2Lead's HMAC signature header before trusting the body.
    const submission = JSON.parse(await request.text());
    const text = 'New lead: ' + (submission.name || 'anonymous') +
      ' (' + (submission.email || 'no email') + ') — ' +
      (submission.message || '');
    await fetch(env.SLACK_WEBHOOK_URL, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ text }),
    });
    return new Response('forwarded');
  },
};

04. Route Each Form to Its Own Channel

Because webhook URLs are configured per form, give the contact form a transform that posts to #sales and the support form one that posts to #support. Submit a test lead per form and confirm both the Slack message and the dashboard entry.

Slack Integration FAQ

Direct Answer

Does Form2Lead have a native Slack integration?

No. Form2Lead sends HMAC-signed webhooks with automatic retries; a small transform step in Zapier, Make, n8n, or your own worker bridges the payload to Slack’s incoming webhook format.

Direct Answer

Can I send form submissions to Slack without writing code?

Yes. In Zapier, Make, or n8n: webhook trigger → map the JSON fields → Slack “send channel message” action. The message lands within seconds of each submission.

Direct Answer

How do I stop fake messages from reaching my Slack channel?

Verify the HMAC signature in your intermediary and lock the form’s Allowed Domains so only your site can submit. Upstream, the invisible honeypot and IP rate limiting block automated submissions before the webhook fires.

Direct Answer

Can different forms post to different Slack channels?

Yes — each form has its own webhook URL, so route the contact form to #sales and the support form to #support with separate transforms.