> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raykoi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Slack

> Post a formatted message to a Slack channel on every submission.

<Info>
  Requires a plan with the `webhooks_enabled` feature. Configured per-form from that form's **Webhooks** settings.
</Info>

## Getting an Incoming Webhook URL

<Steps>
  <Step title="Create a Slack app">
    Go to [api.slack.com/apps](https://api.slack.com/apps) and click **Create New App** (or reuse an existing app for your workspace).
  </Step>

  <Step title="Enable Incoming Webhooks">
    From the app's settings, turn on **Incoming Webhooks**.
  </Step>

  <Step title="Add a webhook to a channel">
    Click **Add New Webhook to Workspace**, pick the channel submissions should post to, and authorize it.
  </Step>

  <Step title="Copy the Webhook URL">
    Slack generates a URL shaped like `https://hooks.slack.com/services/T000/B000/XXXXXXXX` — that's the only credential this integration needs. The URL itself is the secret; anyone with it can post to that channel, so treat it accordingly.
  </Step>
</Steps>

## Connecting it to Raykoi

From the form's **Webhooks** settings, choose **Slack**, and paste in the Incoming Webhook URL. Raykoi validates the shape of the URL (it has to actually look like a Slack webhook URL) before saving.

## What the message looks like

```
New submission on Contact form

email: user@example.com
name: Alice
```

Up to 10 submitted fields are shown, each truncated to 150 characters — enough to see what came in without needing to click through for a typical form. Field values are escaped against Slack's `mrkdwn` formatting, so a submitted value containing `<@here>` or bare `&`/`<`/`>` characters can't inject formatting or disguise a link.

## Testing, retries, and signing

Same delivery pipeline as every other integration — see [Webhook](/essentials/integrations/webhook#retries) for retry/auto-disable behavior and the test-send button. Slack doesn't need Raykoi's own HMAC signing on top — the webhook URL itself is already the credential that authenticates the request.
