Integrations overview

Connect Slack, email, sheets, webhooks, your own agent and the command line to a workspace, and know what each status means.

An integration is a connection between a workspace and something outside it. Some receive alerts, some receive data, some feed data in, and some give another tool access to the workspace. They all live on one page, Integrations, in the sidebar.

Four kinds of integration

Each integration has one purpose. The purpose decides where it shows up elsewhere in the product and what its card badge looks like.

Purpose Badge What it does Examples
Notifications Bell, violet Receives alerts when an alert rule fires, when a run you asked to be told about finishes, or when Jason completes a task Slack webhook, Email notifications, Browser push, Send alert webhook
Source Arrow down, green Feeds rows into a dataset, or starts a run Receive JSON webhook, Fetch external JSON, Google Sheets (pull), Pipeline Trigger
Sink Arrow up, blue Receives every new version of a dataset, or serves it on request Google Sheets (push), Send rows webhook, Publish Dataset API
Service Key, amber Gives another tool access to the workspace Jsonify CLI, Jason for Slack

Assistant connections are a fifth group on the same page. They are not workspace integrations: an assistant connection belongs to your account and follows you across every workspace you can see. See Connect your agent (MCP).

The Integrations page

The All Integrations page with cards grouped under Sources, Sinks, Notifications and Services
Every connection in the workspace, grouped by purpose. The card footer shows the type, the status and when it last changed.

The page is titled All Integrations. Cards are grouped in a fixed order: Sources, Sinks, Notifications, Services, then Assistant connections.

  • Add integration (top right) opens the catalogue. Other parts of the product, such as the alert rule editor, open the same catalogue when you ask for a channel that does not exist yet.
  • Search integrations… matches the label you gave an integration and its type name.
  • Category filters the list. Each option shows a count: All, Sources, Sinks, Notifications, Services, Assistant connections.
  • Sort offers Service type (default, grouped by type then label), Last updated and Name.
  • Clear filters appears once a search or filter is active.
  • Refresh reloads both the workspace integrations and your assistant connections.

Each card shows:

  • Icon and label. The label is the name you gave the integration. If it points at a dataset or pipeline with its own icon, the card borrows that icon.
  • Subtitle. A one-line description of the type, for example “Receive JSON rows at a secret POST URL.”
  • Corner badge. The purpose, with a tooltip.
  • Footer. The type (“Slack webhook”, “Publish Dataset API”, “Pipeline Trigger”), a status dot with its label, and how long ago the integration changed.
  • Menu. Delete, with a confirmation.

Click a card to open its detail page.

A workspace with nothing connected shows “No integrations yet” with an Add integration button. Alert rules can still be created without a channel; they are recorded in Alert history but delivered nowhere until you attach one.

What you can connect

The catalogue lists everything Jsonify can connect today. Each entry below opens a short setup form; the pages in this section describe every field.

Notifications

Integration What it does Details
Slack webhook Posts one message per alert into a Slack channel through an incoming webhook Slack and email
Email notifications Emails each alert to one recipient Slack and email
Browser push Alerts your browser, even when Jsonify is closed. Also powers the “notify me when done” bell on runs Slack and email
Send alert webhook Sends the alert as JSON to a URL you own when a rule fires Slack and email

Sources

Integration What it does Details
Receive JSON webhook A secret URL you send rows to. Each request writes a new dataset version Ingest and serve API
Fetch external JSON Jsonify reads rows from a JSON endpoint you own into a dataset Ingest and serve API
Google Sheets (pull) Reads a public sheet into a dataset Sheets, warehouses and webhooks
Pipeline Trigger A secret URL that starts a run of one pipeline, with parameters Ingest and serve API

Sinks

Integration What it does Details
Google Sheets (push) Writes rows to a sheet every time the dataset gets a new version Sheets, warehouses and webhooks
Send rows webhook Sends new rows, or the whole dataset, to a URL you own after every new version Sheets, warehouses and webhooks
Publish Dataset API A secret URL that returns the latest rows of a dataset on request Ingest and serve API

Services

Integration What it does Details
Jsonify CLI A workspace-scoped key for the command line, for a person or an agent Command line
Jason for Slack Lets a Slack channel talk to Jason about this workspace Slack and email
Assistant connection Connects an MCP assistant to your account Connect your agent (MCP)

The catalogue also has a Disabled tab listing warehouses, cloud storage, BI tools and CRMs that are on the way. Those cards cannot be selected yet; the tab says who to contact. See Sheets, warehouses and webhooks for what to do in the meantime.

Adding an integration

  1. Open the catalogue. Press Add integration. The picker opens on the Enabled tab; each tab shows how many entries it holds.
  2. Find the entry. Type in Search… to match a name or description, or narrow the All categories menu to one of Popular, Data Warehouses, Cloud Storage, Spreadsheets, Business Intelligence, CRM, Notifications or Developer. Cards are grouped by category; hover a card for its description.
  3. Pick the direction, if asked. Google Sheets can pull or push, so it asks What should this do? first. Choose one; Back returns to this step.
  4. Name it. Label is how the integration appears in pickers elsewhere, for example in the alert rule editor. It defaults to the type name. You can have several integrations of the same type with different labels.
  5. Fill in the fields. Required fields are marked with an asterisk; Connect stays disabled until each one has a value. Dataset fields offer + Create new dataset, which creates an empty dataset named after your label.
  6. Connect. Jsonify runs the check for that type (table below). A failure shows “Connection failed:” with the reason and leaves the form open so you can correct it. On success you see “
The Add integration picker with Enabled and Disabled tabs, a search box, a category menu and cards grouped by category
The catalogue. Enabled entries open a setup form; Disabled entries are on the way.

Fields that hold a secret, such as a webhook URL or an authorisation header, are masked in the form. Treat the integration itself as the secret: anyone who can open the workspace can open its detail page.

What Connect checks

Connect is also the test. There is no separate test button; the same check runs again whenever you press Save on the detail page.

Integration What happens when you press Connect
Slack webhook Posts “:white_check_mark: Jsonify connected” to the channel. Fails if the URL is not a Slack incoming webhook or Slack rejects it
Email notifications Sends a real email, “Jsonify: integration connected”, to the recipient
Send alert webhook Sends a small test message to your URL. Fails if it cannot be reached or answers with an error
Send rows webhook Checks the URL and your selections only. Nothing is sent until the dataset next publishes
Fetch external JSON Fetches the endpoint once and checks it returns JSON. The optional auth header is not sent during this check
Google Sheets (pull) Reads the sheet through its public export. Fails if the sheet is not shared with “Anyone with the link”
Google Sheets (push) Opens the sheet as Jsonify’s service account and checks the worksheet exists
Receive JSON webhook, Publish Dataset API, Pipeline Trigger Checks your selections only. The URL is created immediately and needs nothing to test
Browser push No check. It is live as soon as you create it; each device subscribes separately

Statuses

The status dot on a card and the pill on the detail page mean the same thing.

Status Colour What it means What to do
Live Green Connected and checked. Sources accept data, sinks deliver, notification channels can be attached to rules Nothing
Needs setup Amber Created but never checked. This is where an integration sits if the connection failed and you closed the form Open it, fill in Settings and press Save
Requested Grey An earlier request for an integration that is not yet available Contact support
Revoked Red A CLI key that was revoked, or a Jason for Slack channel whose authorising member lost access Issue a new key from the detail page, or reconnect the channel from Slack

Secret URLs and keys only work while the integration is Live. A request to a URL whose integration is not live is refused.

The integration detail page

Click any card to open it. The header shows the type icon, the label, the type, and the status pill. Below it are up to four tabs.

An integration detail page with the Overview tab open, showing the connection details block and the facts grid
The Overview tab. Every value in the connection details block has a Copy link.
  • Overview. What the integration does, a connection details block (the secret URL for sources and sinks, the install commands for the CLI), and a facts grid: Type, Flow, Created, Updated, plus Dataset and Pipeline links when the integration points at one.
  • Code. Only on Receive JSON webhook, Publish Dataset API and Pipeline Trigger. Ready-made request samples for cURL and for your own program, each with a Copy button. See Ingest and serve API.
  • Settings. The Label and every field from the setup form. Save runs the connection check again, then stores the change; you see “Connection successful.” (with “A test message was sent.” for notification channels) or “Connection failed:” with the reason. Jason for Slack has no editable settings beyond its label.
  • Danger. Delete integration, described below.

Every Copy link in the connection details copies one value and confirms with a toast. Single-line values select themselves when you click them, so a keyboard copy works too.

Where integrations appear elsewhere

You rarely open the Integrations page to use an integration; other pages pick them up.

Place What you see
Alert rule editor Every Live notification channel, by label, to attach to the rule. A link to add one if none exists
A running run or Jason chat The bell, Notify me when done. Browser push is the default; the menu Notify me by lists every other live notification channel
A dataset page A Connections strip listing the sources that feed it and the destinations it delivers to, each marked Live or Not live, plus a Sync button when a pulled source exists
A pipeline’s Run dialog “Pipeline Trigger attached” when a trigger points at the pipeline, with a link to it
Chat history Chats started from Slack, the CLI or an assistant carry a badge naming the integration or assistant

Which integration do I need?

You want to Use
Hear about a condition in the data, or a failed run, in Slack or by email A notification channel plus an alert rule
Keep a spreadsheet up to date with a dataset Google Sheets, Push rows to a sheet
Load rows into your own database or system after every run Send rows webhook, or Publish Dataset API fetched by your loader
Let an app read the latest rows on demand Publish Dataset API
Feed rows from a form, a partner or an internal job into a dataset Receive JSON webhook
Use a spreadsheet or an endpoint you maintain as a pipeline input Google Sheets Pull rows from a sheet, or Fetch external JSON
Start a run from a scheduler, a deploy or another tool Pipeline Trigger
Work with Jsonify from a terminal, a job or an agent Jsonify CLI
Work with Jsonify from ChatGPT, Claude, Copilot or another assistant Assistant connection
Let a Slack channel talk to Jason Jason for Slack

Who can do what

Anyone who can open the workspace can see the Integrations page, add most integrations and delete them. Three things are held to a tighter rule:

  • CLI keys and Jason for Slack. Creating, rotating or revoking a CLI key, installing Jason in Slack and connecting a channel need you to be a member of the organisation that owns the workspace.
  • Assistant connections. These are grants on your own account and are managed only by you.
  • Browser push. Bound to the person who created it. A rule attached to it pings that person’s devices only, even though the rule is workspace-wide.

Removing an integration

You can remove an integration in three places: the card menu (Delete), the bulk bar after selecting several cards (Delete), or the detail page’s Danger tab (Delete integration). Each asks you to confirm.

Deleting is immediate and permanent:

  • Secret URLs stop resolving at once.
  • Sinks stop delivering. The dataset keeps publishing; only that destination goes quiet.
  • Alert rules attached to the channel stop delivering. The rules themselves remain, so re-attach them to another channel or they will fire into Alert history only.
  • A CLI integration’s key is revoked. A Jason for Slack integration’s channel is disconnected.
  • The integration is removed from any share link that included it.

Assistant connections cannot be deleted from the card menu or the bulk bar, because they belong to your account rather than the workspace. Open one and press Disconnect. See Managing connections.

Folders

The list supports the same folders as pipelines: create, rename and delete folders, and move integrations into them from the card menu or the bulk bar. Folders are a way to keep a busy page readable, for example one folder per customer whose CLI keys and webhooks you manage. They change nothing about how an integration behaves.

Assistant connections cannot be moved into folders; the page tells you so if you try.

A busy team usually ends up with one folder per destination system and one for keys. Keep labels descriptive too: “Slack #pricing-alerts” reads better in the alert rule editor than “Slack”.

What’s next

Connect your data assistant

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

Connect in ChatGPT

  1. Open Settings → Security and login and enable Developer mode.
  2. Open Plugins and select + to create a connection. Name it Jsonify, add a short description, and paste the URL below.
  3. Use OAuth for authentication, select Create, and sign in to your Jsonify account when prompted.
  4. Start a new chat and select Jsonify from + → More, then describe your dataset.
Server URLhttps://factory.jsonify.com/mcp

If Developer mode is unavailable, your plan or workspace settings may restrict custom connections.

Official ChatGPT setup guide ↗

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