Slack and email

Send alert messages to 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 alert messages land. You connect one once, then any number of alert rules can send to it. The same integrations are offered when you ask to be told when a Jason task finishes.

How alerts are deliveredWhen a dataset publishes or a run finishes, each alert rule checks its condition. A match fires one alert, which is always kept in Local Notifications with its matching rows. The rule can also send it to one destination: a message to Slack, email, a webhook or browser notifications, or rows to an output such as Google Sheets, a warehouse table, S3 or a webhook.Dataset publishesor a run finishesAlert rulewatches one dataset or pipelineFireskept with its matching rowsLocal Notificationsevery fire: bell + NotificationsA messageSlack · email · webhook · browserOr rows to an outputSheets · warehouse · S3 · webhookmatchesone destination
A rule watches a dataset or a run. When it fires, the fire is kept in Jsonify and sent to the rule's one destination.

This page covers the four notification integrations (Slack alerts, email, browser notifications and alert webhooks) and two Slack features that are not alert destinations: Jason in Slack, which lets a channel talk to Jason, and the Slack Connect support channel with the Jsonify team. For sending rows rather than messages, see Sheets, warehouses and webhooks.

Slack alerts

Slack alerts posts one message per alert into a channel. 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. Ask Jason. Open Integrations → Outputs → Connect Output, choose Slack alerts, and say what it is for, for example “Post to Slack when a pipeline run fails”. Press Send to Jason.
  2. Open the integration. Jason creates it, and the rule if you asked for one, and links to the integration page. It shows Needs setup until you add the URL.
  3. Paste the URL. On the Settings tab, paste the webhook into Incoming Webhook URL and press Save. Jsonify posts “:white_check_mark: Jsonify connected” to the channel. If that message does not arrive, the URL is wrong or Slack rejected it, and the page shows Slack’s answer.
  4. Test. Test in the header posts “[Test] Message from Jsonify” to the channel at any time.
A Slack alerts integration page showing its Live status, the Test button, and the Settings, Rules, Activity and Delete tabs
A Slack alerts integration. The Rules tab lists every rule that posts here.
Option Values Default What it does
Incoming Webhook URL A URL beginning https://hooks.slack.com/ Required, secret Where messages are posted. Jsonify refuses any other host. “Create one at api.slack.com/apps → your app → Incoming Webhooks.”

Jason names the integration; click the name in the page header to change it. Name it after the channel, for example “Slack #pricing-alerts”, so it reads well in a rule’s Send to list.

What a Slack alert looks like

Each alert is one message: an emoji, the rule name in bold, then the reason the rule fired. A data rule adds the counts of rows added, removed, changed or matched. A run rule adds a line for each dataset, file and dashboard the run produced, each a link. Every message ends with View notification, which opens the fire’s page in Jsonify.

:rotating_light: Price drop over 10% 3 rows matched the condition 3 matched View notification

The emoji says how the alert should read:

Emoji When
:rotating_light: A run failed, or a data rule marked Urgent fired
:white_check_mark: A run succeeded
:warning: A run returned far fewer rows than usual
:bell: Anything else: a data rule that is not urgent, or a cancelled run

Slack’s incoming webhooks cannot carry files, so a Slack message links to the matching rows and the run’s outputs rather than attaching them.

Slack posts in whichever channel the webhook was created for. To send different rules to different channels, create one Slack alerts integration per channel and point each rule at the right one.

Email alerts

Email 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
Recipient email One address Required Where every alert sent to this integration goes

Every workspace starts with an Email notifications integration addressed to its owner, so a new rule can send email with no set-up. For anyone else, press Connect Output → Email and ask Jason, for example “Email my team when a price changes by more than 10%”.

Save 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 the address. Test sends “[Test] Message from Jsonify”.

Alerts arrive with the subject [Jsonify] <rule name>. The header reads Notification for a data rule, or Run succeeded, Run failed or Run cancelled for a run rule, coloured to match; an Urgent rule’s email is red. The body carries the reason and counts, and a View notification button that opens the fire’s page.

Emails also carry files, up to 3 MB in all:

  • A data rule attaches the matching rows as an Excel file, under Matching rows.
  • A run rule lists the run’s datasets, files and dashboards, and attaches each dataset as an Excel file and each file the run produced.
  • Anything over the size budget is linked instead, with a note saying why.

To email several people, create one Email integration per address and a rule for each, or use a distribution list’s address.

Email alerts are for rules. For Jason’s daily “anything worth sharing?” email, see Jason Emails in Workspace settings.

Browser notifications

Browser notifications alert your browser even when the Jsonify tab is closed. It is also what the “notify me when done” bell on a running run uses.

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

  1. Ask Jason. Connect Output → Browser notifications, for example “Notify me in this browser when a pipeline run fails”.
  2. Enable on this device. On the integration’s Settings tab, press 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 from each other browser and press Re-enable. The panel reads “This device is subscribed. Re-enable on any other browser you want pinged.”

If the panel says “This browser can’t receive push notifications, or the server isn’t configured for it.”, the browser does not support them (some private windows, some mobile browsers) or notifications are blocked in its site settings.

Alert webhooks

An alert webhook sends each alert as JSON to a URL you own. Use it to open a ticket, post to a chat tool Jsonify does not connect to, or start your own automation. Ask for one with Connect Output → Webhooks, for example “POST an alert to my URL when a run fails”.

Option Values Default What it does
Target URL An http:// or https:// URL Required, secret Where the alert is sent. “Sent when an attached notification rule fires.”

Save 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,
  "fire_id": "f3a91c0b7e22",
  "url": "https://factory.jsonify.com/notifications/n7f2c9a1b3d4/history/f3a91c0b7e22"
}

kind tells your endpoint what arrived. severity is danger for a failed run or an urgent data rule, success for a successful run, warning for a sharp drop in rows, and info otherwise. Data rules add added, removed, changes or matches lists with their counts; run rules add run_id, run_url, run_status and outputs instead. url opens the fire’s page. Your endpoint must answer within ten seconds.

For sending the rows themselves to a URL, see Send rows to a webhook.

Sending to a rule’s destination

A notification integration does nothing on its own. In an alert rule, Send to chooses one destination: a notification integration, an output that receives rows, or Local Notifications only. Every fire is also kept in Jsonify’s Notifications, whatever the destination. Each delivery, and each failure, is recorded on the rule’s History tab and the integration’s Activity tab, so if a Slack message does not arrive, they say why.

A team watching competitor prices keeps three integrations: “Slack #pricing-alerts” for the everyday rules, “Email ops” for the one urgent stock rule, and browser notifications for the person on duty. Each rule points at the one that fits it.

Being told when something finishes

Two places offer a one-off notification that is not an alert rule.

  • A running run. The bell on the run page, Notify me when this finishes, sends one browser notification when the run completes, fails or is cancelled. It asks for permission the first time, then confirms “I’ll notify you when this finishes — you can close the tab.” Press it again to stop. The bell is hidden in browsers that cannot show notifications.
  • A Jason task. While Jason is working, Notify me does the same for that turn. With browser notifications available it subscribes your browser at once; otherwise, or when you choose (edit), the Notify me by menu lists Browser push and every live Slack, email and webhook integration in the workspace, and None to stop. Once set, it reads “You’ll be notified by {integration}”.

The message that arrives carries the run’s or the task’s name, the outcome, and a link straight to it.

When a message does not arrive

  1. Check Notifications. Every fire is listed with where it went and, on failure, an amber “Slack not delivered” badge with the reason on hover. See Notifications.
  2. Check the integration is Live. An integration that shows Needs setup delivers nothing, and deliveries fail with “Integration {name} is not live”. Open it, fill in Settings and press Save.
  3. Test the integration. Test in its header sends “[Test] Message from Jsonify”, so you can tell an integration problem from a rule problem in one step.
  4. Check the rule. On the rule’s Test tab, Check now says whether it would fire on the latest data. A rule that did not fire has nothing to deliver.

Jason in Slack

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

Install Jason in Slack

  1. Open the dialog. Integrations → AI → Connect AI, then Jason in Slack. The dialog, Connect Jason in Slack, reads “Install Jason once, invite @Jason to a channel, then say “@Jason connect”. Each channel is connected to one exact Jsonify workspace.” Back returns to the service list.
  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 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 have open. Press Connect #channel.

Jason confirms in Slack, and an integration named “Slack · #channel” appears on the AI tab under Jason and agents, status Live. From then on, mentioning @Jason in that channel starts or continues a conversation 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 connection:

  • 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 {workspace}.” 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”.
  • Conversations are visible in Jsonify. Conversations started from Slack appear in the workspace’s Conversations like any other.

The integration has no Test button and nothing to edit beyond its name. 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 on Home, press Check connection. Once Slack confirms the channel is shared, it says “Your shared channel with the Jsonify team is connected.” and the card 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 Jason in Slack to reach us.

Choosing an integration

You want Use
A message in a team channel every time a rule fires Slack alerts
A record in an inbox, with the matching rows attached Email
A ping on your own screen, including the “notify me when done” bell Browser notifications
To open a ticket or start your own automation from an alert An alert webhook
The rows themselves in a sheet, a table or your system An output. See Sheets, warehouses and webhooks
To ask Jason questions and request changes from Slack Jason in Slack
To talk to the Jsonify team Slack Connect

What’s next

Connect your data assistant

Build datasets and work with your data in Claude, ChatGPT, Copilot or another assistant.

Connect in Claude

  1. Open the Jsonify connector: Open on Claude.ai ↗
  2. Select Connect and sign in to Jsonify.
  3. In a chat, enable Jsonify under + → Connectors and describe the data you need.
Advanced

Team or Enterprise account? Your workspace owner enables Jsonify once for everyone from Admin settings → Connectors. Jsonify is a community connector in the directory — some admins allow those by default, some review them first.

No directory? Add it by hand: Settings → Connectors → + Add custom connector, name it Jsonify, paste the server URL below, then Connect.

Server URLhttps://factory.jsonify.com/mcp

Official Claude custom-connector guide ↗

Then say: “build me a dataset of competitor product prices and availability, refreshed daily”. Full instructions per client on /connect.