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

# Slack Chat Integration

> Connect Slack incoming webhooks to WorldVisa notification workflows.

Send workflow notifications to a Slack channel by connecting an incoming webhook. Keep the destination on the subscriber so the same workflow can send updates to different channels for different recipients.

## Set up the Slack app

**1. Create a Slack app**

Open the Slack app dashboard and create an app for the workspace that will receive notifications.

**2. Enable incoming webhooks**

Enable incoming webhooks in the app settings, then add a webhook to the workspace.

**3. Choose a channel**

Approve the destination channel and copy the generated webhook URL. Treat the URL as a secret.

## Connect Slack in WorldVisa

Open the Integration Store, select Slack under Chat, and create an active integration. Give it a clear name and identifier, such as `slack-operations`.

![Slack integration settings](https://mintcdn.com/wv-enterprise/l3bkwl1N_3mOn9aW/images/developers/channels-and-providers/chat/slack/slack-integration.png?fit=max\&auto=format\&n=l3bkwl1N_3mOn9aW\&q=85\&s=a7c481ddb61b698794c053adfb19c742)

## Register the destination

Create the subscriber first. From your backend, register a webhook endpoint on the Slack integration:

```bash theme={null}
curl -X POST "${WV_API_URL}/v1/channel-endpoints" \
  -H "Authorization: ApiKey ${WV_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "type": "webhook",
    "identifier": "operations-slack",
    "subscriberId": "staff-123",
    "integrationIdentifier": "slack-operations",
    "endpoint": { "url": "https://hooks.slack.com/services/EXAMPLE/EXAMPLE/EXAMPLE" }
  }'
```

Keep webhook registration on your server. Your application's frontend should never receive the WorldVisa API key.

## Send notifications

Add a Chat step to your workflow, write the message, and trigger it for the subscriber whose endpoint you registered. Use Liquid variables such as `{{payload.enquiryId}}` to include the details your team needs.

```bash theme={null}
curl -X POST "${WV_API_URL}/v1/events/trigger" \
  -H "Authorization: ApiKey ${WV_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "enquiry-updated",
    "to": { "subscriberId": "staff-123" },
    "payload": { "enquiryId": "enquiry-1001" }
  }'
```

## Format messages with Block Kit

Use the shared Chat block editor for supported card content. WorldVisa renders it for Slack. Keep a useful text body as a fallback, and use the Chat step's provider overrides when you need supported Slack-specific fields.

For a digest, use the [digest variables](https://docs.worldvisagroup.com/developers/workflow/add-notification-content/personalize-content.md#digest-variables) in the step body to summarize collected events.

## Check delivery

Open the [Activity Feed](https://docs.worldvisagroup.com/developers/workflow/monitor-and-debug-workflow.md) and inspect the Chat step. Check that the integration is active, the subscriber has the correct endpoint, and the Slack app still has access to the selected channel. A revoked or deleted webhook needs to be replaced.


## Related topics

- [Discord Chat Integration with WorldVisa](https://docs.worldvisagroup.com/developers/integrations/chat/discord.md)
- [WhatsApp Business Chat Integration with WorldVisa](https://docs.worldvisagroup.com/developers/integrations/chat/whats-app.md)
- [How do workflows work in WorldVisa?](https://docs.worldvisagroup.com/developers/concepts/workflows.md)
- [Integrations](https://docs.worldvisagroup.com/developers/concepts/integrations.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.