---
title: "Slack and email"
description: "Send alerts into a Slack channel, an inbox, your browser or your own URL, talk to Jason from Slack, and get a shared support channel with the Jsonify team."
url: "https://www.jsonify.com/docs/integrations/slack-and-email"
---

[Documentation](https://www.jsonify.com/docs/) Filter pages

## Getting started

*   [What is Jsonify?](https://www.jsonify.com/docs/)
*   [How pipelines work](https://www.jsonify.com/docs/how-jsonify-works)
*   [Your first pipeline](https://www.jsonify.com/docs/getting-started/first-pipeline)
*   [Workspaces](https://www.jsonify.com/docs/getting-started/workspaces)
*   [Glossary](https://www.jsonify.com/docs/getting-started/glossary)

## Tutorials

*   [Track the Hacker News front page](https://www.jsonify.com/docs/tutorials/hacker-news)
*   [Monitor prices across retailers](https://www.jsonify.com/docs/tutorials/price-monitoring)
*   [Get a Slack alert when a price drops](https://www.jsonify.com/docs/tutorials/slack-price-alert)
*   [Use a dataset from your agent](https://www.jsonify.com/docs/tutorials/agent-query)

## Jason

*   [Chatting with Jason](https://www.jsonify.com/docs/jason/chat)
*   [Changing a pipeline](https://www.jsonify.com/docs/jason/changing-a-pipeline)
*   [Agents, workers and repairs](https://www.jsonify.com/docs/data-agents)

## Pipelines

*   [The pipeline page](https://www.jsonify.com/docs/pipelines/overview)
*   [Statement of work and steps](https://www.jsonify.com/docs/pipelines/statement-of-work)
*   [Inputs and parameters](https://www.jsonify.com/docs/pipelines/inputs)
*   [Settings reference](https://www.jsonify.com/docs/pipelines/settings)
*   [Versions and changelog](https://www.jsonify.com/docs/pipelines/versions)

## Runs

*   [Running a pipeline](https://www.jsonify.com/docs/runs/running)
*   [Scheduling](https://www.jsonify.com/docs/runs/scheduling)
*   [Run detail](https://www.jsonify.com/docs/runs/run-detail)
*   [Run lifecycle](https://www.jsonify.com/docs/runs/lifecycle)
*   [Verification and repair](https://www.jsonify.com/docs/runs/verification-and-repair)

## Datasets

*   [Dataset pages](https://www.jsonify.com/docs/datasets/overview)
*   [Versions](https://www.jsonify.com/docs/datasets/versions)
*   [Query and export](https://www.jsonify.com/docs/datasets/query-and-export)
*   [Row detail and provenance](https://www.jsonify.com/docs/datasets/provenance)
*   [Sharing](https://www.jsonify.com/docs/datasets/sharing)

## Analytics

*   [Dashboards](https://www.jsonify.com/docs/analytics/dashboards)
*   [Newsletters](https://www.jsonify.com/docs/analytics/newsletters)

## Alerts

*   [Alert rules](https://www.jsonify.com/docs/alerts/rules)
*   [Alert history and notifications](https://www.jsonify.com/docs/alerts/history)

## Integrations

*   [Integrations overview](https://www.jsonify.com/docs/integrations/overview)
*   [Slack and email](https://www.jsonify.com/docs/integrations/slack-and-email)
*   [Sheets, warehouses and webhooks](https://www.jsonify.com/docs/integrations/destinations)
*   [Ingest and serve API](https://www.jsonify.com/docs/integrations/api)
*   [Connect your agent (MCP)](https://www.jsonify.com/docs/integrations/mcp)
*   [Command line](https://www.jsonify.com/docs/integrations/cli)

## Workspace and account

*   [Workspace settings](https://www.jsonify.com/docs/workspace/settings)
*   [Team](https://www.jsonify.com/docs/workspace/team)
*   [Billing and usage](https://www.jsonify.com/docs/workspace/billing)
*   [Data retention](https://www.jsonify.com/docs/workspace/data-retention)

## Plans

*   [Radar or Benchmark? Enterprise](https://www.jsonify.com/docs/radar-vs-benchmark)
*   [Row pricing and managed service](https://www.jsonify.com/docs/pricing-model)

## More

*   [Connect your agent](https://www.jsonify.com/connect)
*   [Pricing](https://www.jsonify.com/pricing)
*   [Contact support](https://www.jsonify.com/contact)

[Docs](https://www.jsonify.com/docs/)/Integrations

# Slack and email

Send alerts into a Slack channel, an inbox, your browser or your own URL, talk to Jason from Slack, and get a shared support channel with the Jsonify team.

Notification integrations are where alerts land. You create the channel once, then attach it to any number of [alert rules](https://www.jsonify.com/docs/alerts/rules). The same channels are offered when you ask to be told when a run finishes or when Jason completes a task.

When a dataset publishes or a run finishes, each alert rule evaluates its condition. A match fires one alert that is delivered to the channels the rule selects: in-app, Slack, email, webhook or browser push.

A rule watches a dataset or a run. When it fires, every attached channel gets one message.

This page covers the four notification channels (Slack, email, browser push, alert webhook) and the two Slack features that are not alert channels: **Jason for Slack**, which lets a channel talk to Jason, and the **Slack Connect** support channel with the Jsonify team.

## Slack alerts

**Slack webhook** posts one message per alert into a channel of your choosing. It uses a Slack incoming webhook, so the channel is chosen in Slack, not in Jsonify.

### Create the webhook in Slack

1.  **Open your Slack apps.** Go to api.slack.com/apps and create an app (or open one you already have) in the Slack workspace that owns the channel.
2.  **Turn on Incoming Webhooks.** In the app’s settings, open **Incoming Webhooks** and switch it on.
3.  **Add a webhook to the channel.** Press **Add New Webhook to Workspace**, pick the channel alerts should go to, and allow it.
4.  **Copy the webhook URL.** It starts with `https://hooks.slack.com/services/`. Treat it as a secret; anyone holding it can post to that channel.

### Connect it in Jsonify

1.  **Add integration** and choose **Slack webhook** under Notifications.
2.  **Fill in the form** using the fields below.
3.  **Connect.** Jsonify posts “:white\_check\_mark: Jsonify connected” to the channel. If that message does not arrive, the URL is wrong or Slack rejected it; the form shows Slack’s answer.

![The Connect Slack form with the Label and Incoming Webhook URL fields](/assets/images/product/integrations-slack-config.png)

One field. Which channel it posts to was decided when you created the webhook in Slack.

| Option | Values | Default | What it does |
| --- | --- | --- | --- |
| Label | Text | “Slack” | How this channel appears in pickers, for example in the alert rule editor. Name it after the channel: “Slack #pricing-alerts” |
| Incoming Webhook URL | A URL beginning https://hooks.slack.com/ | Required | Where messages are posted. Jsonify refuses any other host |

### What a Slack alert looks like

Each alert is one message: an emoji for the severity, the rule name in bold, then the body on the next line. The body starts with the reason the rule fired and, for dataset rules, the counts of rows added, removed, changed or matched.

> :rotating\_light: **Price drop over 10%** 3 rows matched the condition 3 matched

The emoji follows the rule’s severity: :rotating\_light: for **Danger**, :warning: for **Warning**, :white\_check\_mark: for **Success** and :bell: for **Info**. Run and Jason notifications add a link to the run or the chat.

> Slack shows the message in whichever channel the webhook was created for. To route different rules to different channels, create one Slack webhook integration per channel and attach each rule to the right one.

## Email alerts

**Email notifications** sends each alert to one address. Jsonify delivers the mail itself; there is nothing to configure on your side.

| Option | Values | Default | What it does |
| --- | --- | --- | --- |
| Label | Text | “Email” | How this channel appears in pickers |
| Recipient email | One address | Your sign-in address | Where every alert attached to this channel is sent |

**Connect** sends a real email with the subject “Jsonify: integration connected” and an **Open notifications** button. If it does not arrive within a minute, check spam, then check the address.

Alerts arrive with the subject `[Jsonify] <rule name>`. The body carries the reason and counts, as in the Slack example, plus a button: **View notification** for an alert rule, **View run** for a run notification, **Open task** for a Jason task.

To email several people, create one Email notifications integration per address and attach each to the rule. For a distribution list, use the list’s address.

> Email alerts are for rules and run notifications. For a written summary of fresh data on a schedule, use a [newsletter](https://www.jsonify.com/docs/analytics/newsletters), which has its own recipient list. For Jason’s daily “anything worth sharing?” email, see **Jason Emails** in [Workspace settings](https://www.jsonify.com/docs/workspace/settings).

## Browser push

**Browser push** alerts your browser even when the Jsonify tab is closed. It is also the channel behind the “notify me when done” bell on a running [run](https://www.jsonify.com/docs/runs/run-detail) and on a Jason chat.

It has no fields. The integration is bound to you, the person who created it, and every browser you subscribe gets the alerts.

1.  **Add integration** and choose **Browser push** under Notifications.
2.  **Enable on this device.** Your browser asks permission to show notifications; allow it. You see “This device will now receive browser notifications.”
3.  **Repeat on other browsers.** Open the integration again from another browser and press **Re-enable**. Each browser subscribes separately.

If the button reports “This browser can’t receive push notifications”, the browser does not support them (some private windows, some mobile browsers) or notifications are blocked in its site settings.

## Alert webhooks

**Send alert webhook** sends the alert as JSON to a URL you own. Use it to open a ticket, post to a chat tool Jsonify does not connect to yet, or feed your own automation.

| Option | Values | Default | What it does |
| --- | --- | --- | --- |
| Label | Text | “Webhook” | How this channel appears in pickers |
| Target URL | An http:// or https:// URL | Required | Where the alert is sent |

**Connect** sends a test message, `{"kind": "test", "message": "Jsonify connected"}`, and expects a success answer within ten seconds. When a rule fires, one request is sent per alert:

```
{
  "kind": "notification",
  "title": "Price drop over 10%",
  "body": "3 rows matched the condition\n3 matched",
  "reason": "3 rows matched the condition",
  "severity": "danger",
  "notification_id": "n7f2c9a1b3d4",
  "description": "Any offer whose price fell by more than a tenth since the last run",
  "matches": [ ... ],
  "matches_count": 3
}
```

`kind` tells your endpoint what arrived. `severity` is one of `info`, `warning`, `danger` or `success`. Dataset rules add `added`, `removed`, `changes` or `matches` lists with their counts; run notifications add `run_id` and `run_url` instead. Your endpoint must answer within ten seconds. For sending rows rather than alerts, see [Send rows to a webhook](https://www.jsonify.com/docs/integrations/destinations#send-rows-to-a-webhook).

## Attaching a channel to a rule

Channels do nothing on their own. In the [alert rule](https://www.jsonify.com/docs/alerts/rules) editor, choose one or more channels for the rule; a rule with no channel is still recorded in [Alert history](https://www.jsonify.com/docs/alerts/history) but delivered nowhere. Each delivery, and each failure, is recorded against the alert in history, so if a Slack message does not arrive, history says why.

> A team watching competitor prices keeps three channels: “Slack #pricing-alerts” for every rule, “Email ops” for Danger rules only, and Browser push for the person on duty who wants the run-finished bell. Rules attach to the channels that fit their severity.

## Being told when something finishes

Two places offer a one-off notification that is not an alert rule, and both use the channels on this page.

*   **A running run.** The bell on the run page, **Notify me when this finishes**, sends one message when the run completes or fails. With browser push available it subscribes your browser at once; otherwise, or by choice, the **Notify me by** menu lists every live Slack, email and webhook channel in the workspace. Choose **None** to cancel.
*   **A Jason task.** While Jason is working, **Notify me** in the chat’s side rail does the same for that turn. Once set, it reads “You’ll be notified by " with an \*\*edit\*\* link to change the channel.

If no channel exists, the menu says so and links to the Integrations page. The message that arrives carries the run’s or the task’s name, the outcome, and a link straight to it.

> Browser push is the default because it needs no setup, but it only reaches the devices you subscribed. When you want a teammate to see the run finish too, pick the Slack channel instead.

## When a message does not arrive

1.  **Check Alert history.** Every delivery is recorded with its channel and, on failure, the reason Slack, your mail provider or your endpoint gave. See [Alert history](https://www.jsonify.com/docs/alerts/history).
2.  **Check the integration is Live.** A channel that is **Needs setup** delivers nothing. Open it, press **Save** on the Settings tab and read the result.
3.  **Re-test.** **Save** on the Settings tab re-runs the connection check and sends a fresh test message, so you can tell a channel problem from a rule problem in one step.
4.  **Check the rule.** A rule that did not fire has no delivery to record. The rule’s own history says whether the condition was met on the latest version.

## Jason for Slack

**Jason for Slack** is different from the Slack webhook. It does not deliver alerts; it lets people in a Slack channel talk to Jason about one workspace, as if they had opened the chat in Jsonify.

### Install Jason in Slack

1.  **Add integration** and choose **Jason for Slack** under Popular. The **Connect Slack** dialog explains the flow.
2.  **Install Jason in Slack.** You are sent to Slack to approve the app for your Slack workspace. Back in Jsonify you see “Jason was installed in Slack” (or “Slack installation was cancelled” if you backed out).
3.  **Invite Jason to a channel.** In Slack, add @Jason to the channel that should be able to reach this workspace.
4.  **Say “@Jason connect”.** Jason replies with a link that is valid for fifteen minutes.
5.  **Confirm the workspace.** The link opens **Connect Jason to this Slack channel** in Jsonify. It shows the Slack channel, the Slack workspace and the Jsonify workspace you currently have open. Press **Connect #channel**.

Jason confirms in Slack, and an integration named “Slack · #channel” appears under Services, status Live. From then on, mentioning @Jason in that channel starts or continues a chat in this workspace.

> Everyone in the Slack channel can ask Jason to read and change the connected workspace. Remove someone from the channel, or delete the integration, to take that away.

A few rules about the binding:

*   **One channel, one workspace.** A channel can be connected to exactly one Jsonify workspace. Asking to connect again gets “This channel is already connected to ." To point it elsewhere, delete the integration and connect again.
*   **One Slack workspace, one organisation.** Jason can be installed into a Slack workspace by one Jsonify organisation.
*   **The connecting member matters.** The connection is authorised by the member who confirmed it. If that person later loses access to the organisation, Jason answers “This channel’s Jsonify permission is no longer valid. Reconnect the channel.” and the integration turns **Revoked**. Any current member can reconnect with “@Jason connect”.
*   **Chats are visible in Jsonify.** Conversations started from Slack appear in the workspace’s chat history like any other.

The integration’s **Settings** tab lets you rename it; there is nothing else to edit. Deleting it disconnects the channel immediately.

## Slack Connect with the Jsonify team

Separate from both features above, every workspace can have a private **Slack Connect** channel shared between your team and the Jsonify team, for questions, feedback and help with a build. It is offered from the workspace **Home** page rather than the Integrations page.

1.  **Open Home.** Look for the card **Set up a shared Slack Connect channel with the Jsonify team**.
2.  **Email me a Slack Connect invitation.** Jsonify creates a private channel for this workspace, adds the Jsonify team, and sends a Slack Connect invitation to your account email.
3.  **Accept in Slack.** Open the invitation, choose your Slack workspace, and accept. Your Slack administrator may need to approve the connection first.
4.  **Check connection.** Back in the dialog, press **Check connection**. Once Slack confirms the channel is shared, it says “Your shared channel with the Jsonify team is connected.” and disappears from Home.

Pressing the button twice never sends a second invitation. If the card says the Jsonify team is still finishing setup, check back later or use the Jason for Slack channel to reach us.

## Choosing a channel

| You want | Use |
| --- | --- |
| A message in a team channel every time a rule fires | Slack webhook |
| A record in an inbox, or a message to someone without Slack | Email notifications |
| A ping on your own screen, including the “notify me when done” bell | Browser push |
| To open a ticket or trigger your own automation from an alert | Send alert webhook |
| To ask Jason questions and request changes from Slack | Jason for Slack |
| To talk to the Jsonify team | Slack Connect |

## What’s next

[**Alert rules**

Conditions on datasets and runs, severities, and attaching channels.

](https://www.jsonify.com/docs/alerts/rules)[**Alert history**

Every alert that fired, where it went, and whether delivery succeeded.

](https://www.jsonify.com/docs/alerts/history)[**Tutorial: a Slack price alert**

From an empty workspace to a message in a channel.

](https://www.jsonify.com/docs/tutorials/slack-price-alert)[**Newsletters**

Scheduled written summaries of fresh data, emailed to a recipient list.

](https://www.jsonify.com/docs/analytics/newsletters)

[PreviousIntegrations overview](https://www.jsonify.com/docs/integrations/overview) [NextSheets, warehouses and webhooks](https://www.jsonify.com/docs/integrations/destinations)

Something missing or wrong? [Tell us](https://www.jsonify.com/contact).[Build it →](https://factory.jsonify.com/setup)

## On this page
