Integrations overview

The Inputs, Outputs, Rules and AI tabs, how Jason sets up a new integration, the Test button, statuses, and the integration page.

An integration connects a workspace to something outside it. Inputs bring data in or start runs. Outputs are where messages and rows go. Rules decide when something is sent. AI connections let an assistant, the command line or a Slack channel work in the workspace. All of them live under Integrations in the sidebar.

The four tabs

The Integrations page is split into four tabs. Each tab shows a count of what it holds, and /integrations opens Inputs.

Tab What it holds Sections on the tab
Inputs Anything that starts a pipeline or pulls data in for one Inputs: “What starts pipelines or pulls data in for them”
Outputs Destinations. Rows go to data outputs, messages go to notifications Data outputs: “Where rules send rows, and dataset APIs other systems fetch”. Notifications: “Where rules send messages and run updates”
Rules Alert rules, which decide when a message or rows are sent, and to which output A card per rule
AI Ways to work with Jsonify from somewhere else Jason and agents: “Jason in Slack, and CLI access for you and your agents”. Assistant connections: “AI assistants such as ChatGPT, Claude and Microsoft Copilot that can work in this organisation”

An output does nothing on its own. It is a place to send to. A rule chooses the output and decides what is sent and when, so one output can serve rules on many pipelines. See Sheets, warehouses and webhooks for how rows reach an output.

The Outputs tab of the Integrations page with Data outputs and Notifications sections of integration cards
The Outputs tab. Data outputs receive rows from rules; notifications receive messages.

The list

The Inputs, Outputs and AI tabs share one layout. The page title is the tab’s name.

  • Connect Input, Connect Output or Connect AI. The primary button, top right, named after the tab. It opens the service picker described in Connecting a service. A tile with the same label sits at the end of the cards.
  • Search integrations… Matches the integration’s name and its type.
  • Category. On the Outputs tab only: All, Data outputs or Notifications, each with a count.
  • Sort. Service type (default, grouped by type then name), Last updated or Name.
  • Clear filters. Appears once a search or filter is active.
  • Refresh. Reloads the integrations and, on the AI tab, your assistant connections.
  • Folders and bulk actions. Folders work as on the pipelines list. Select several cards to Delete them together, with a confirmation, or move them to a folder.

Each card shows:

  • Icon. The service’s logo. An integration tied to a pipeline or dataset shows a pair instead: the pipeline’s icon, then the service, for outputs, and the service, then the pipeline, for inputs. A pipeline trigger leads with the pipeline’s icon.
  • Name and subtitle. The name Jason gave it, which you can change, and a one-line description of the type.
  • Corner badge. What it is for: Source, Sink, Notifications or Service, with a tooltip.
  • Footer. The type (“Slack webhook”, “Pipeline Trigger”), a status dot and label, a Snowflake token’s expiry (“Token expires in 20 days”), and “Active 5m ago” once the integration has done something.
  • Menu. Delete, with a confirmation.

A card that still needs setup is tinted amber across its whole surface. Click a card to open its integration page.

Each tab has its own empty state:

Tab Empty state
Inputs “No inputs yet. Pull rows in from Google Sheets or an API, or let other systems start your pipelines.”
Outputs “No outputs yet. Connect Google Sheets, Slack, email or a webhook so rules have somewhere to send.”
AI “No AI connections yet. Use Jsonify from ChatGPT, Claude, Microsoft Copilot or Slack.”

What you can connect

The picker lists these services. A service that can both bring data in and send it out appears on both the Inputs and the Outputs tab. Once connected, an integration’s card and page name its type, which is sometimes worded differently from the picker.

Service Tabs What it does Type shown on its card Details
Google Sheets Inputs, Outputs Send results to a sheet, or bring rows in from one Google Sheets Sheets, warehouses and webhooks
Snowflake Inputs, Outputs Keep a Snowflake table in sync, or bring a query result in Snowflake Warehouses and S3
S3 Inputs, Outputs Write rows to a bucket, or read objects in. Any S3-compatible store S3 Warehouses and S3
Postgres Inputs, Outputs Keep a Postgres table in sync, or bring a query result in Postgres Warehouses and S3
MySQL Inputs, Outputs Keep a MySQL table in sync, or bring a query result in MySQL Warehouses and S3
BigQuery Inputs, Outputs Keep a BigQuery table in sync, or bring a query result in BigQuery Warehouses and S3
Email Outputs Email alerts when runs fail or data changes Email notifications Slack and email
Slack alerts Outputs Post alerts and new rows to a Slack channel Slack webhook Slack and email
Browser notifications Outputs Browser alerts, even when Jsonify is closed Browser push Slack and email
Webhooks Inputs, Outputs Send rows or alerts to your URL, receive JSON from your system, or start a pipeline run when your system calls a URL Send rows webhook, Send alert webhook, Receive JSON webhook, Pipeline Trigger Webhook outputs, alert webhooks, ingest, triggers
Read from an API Inputs Pull rows from a JSON URL into a dataset Fetch external JSON Ingest and serve API
Publish an API Outputs Serve a dataset’s latest rows at a GET endpoint Publish Dataset API Ingest and serve API
Jason in Slack AI Chat with Jason from your Slack channels Jason for Slack Slack and email
ChatGPT, Claude & Microsoft Copilot AI Use Jsonify from your AI assistant Assistant connection Connect your agent (MCP)
Jsonify CLI AI Command-line access for you and your agents Jsonify CLI Command line

Something not on the list? Type its name in the picker’s filter and choose Ask Jason about “…”. Jason tells you whether it can be connected and how.

Connecting a service

You do not fill in a setup form. You pick a service, say what it should do, and Jason creates the integration. Anything secret, such as a webhook URL, a password or a key, you type yourself on the integration page.

The Connect Output dialog listing services such as Google Sheets, Snowflake, Email and Slack alerts, with a filter box
The service picker, opened from Connect Output.
  1. Open the picker. Press Connect Input, Connect Output or Connect AI. The dialog lists the services for that tab. Type in Filter services… to narrow it; when nothing matches, the last line offers Not listed? Ask Jason about “…”.
  2. Pick a service. The dialog turns into Connect {service}, “Jason sets this up. You add any keys yourself.”
  3. Say what it should do. Type in What should it do?, or press one of the Suggestions pills to fill the box, for example “Post to Slack when a pipeline run fails”. Attach adds a file for Jason to read, Link points Jason at a pipeline or dataset, and you can drop files onto the box.
  4. Send to Jason. (Cmd/Ctrl+Enter also works.) Jason opens a new conversation, creates the integration and, where it needs one, the alert rule. Back returns to the service list.
  5. Add your keys. Jason links to the new integration’s page. Open it, fill in any field marked with an asterisk on the Settings tab, and press Save.
  6. Test. Press Test in the page header to send a test message or run the connection check.
The Connect Slack alerts step with the What should it do box, suggestion pills and the Send to Jason button
The second step. Jason sets up the integration from your request.

Three services need something only your browser can do, so they open their own dialog instead of the Jason step. Each dialog has a Back button to the service list.

Service Dialog See
Jason in Slack Connect Jason in Slack, with Install Jason in Slack Jason in Slack
ChatGPT, Claude & Microsoft Copilot Connect your assistant, with Connect and Advanced tabs and Check connection Connect your agent (MCP)
Jsonify CLI Connect Jsonify CLI, with Label and Access Command line

Secret fields say “Only you enter this — Jason never sees it.” Jsonify stores them encrypted and never shows them again, not even to you. Once saved, the field reads “Set — enter a new value to replace it.” Leaving it empty keeps the stored value.

Save and Test

Save on the Settings tab checks the settings before it turns the integration on. If the check fails you see “Couldn’t turn this on:” with the reason, and the integration stays as it was. On success the toast reads “Integration connected” the first time and “Integration saved” after that.

Test, in the page header, tries a live integration for real. It is disabled until the integration is Live, with the tooltip “Finish setting up this integration to test it”, and every test is recorded on the Activity tab.

  • Notification integrations (Slack, email, alert webhooks, browser notifications) get a message titled “[Test] Message from Jsonify” with the body “Alerts sent to {name} arrive like this.”
  • Everything else runs the same connection check as Save and reports “Connection check passed”.
  • Pipeline triggers, Receive JSON webhooks, Publish an API and Read from an API open the Test API request dialog instead, where you build and send a real request. See Test a trigger from Jsonify and Ingest and serve API.
  • Jsonify CLI and Jason in Slack have no Test button.

What the check does, by type:

Integration What Save and Test check
Slack alerts Save posts “:white_check_mark: Jsonify connected” to the channel. Fails if the URL is not a Slack incoming webhook or Slack rejects it
Email Save sends “Jsonify: integration connected” to the recipient
Alert webhook Save posts {"kind": "test", "message": "Jsonify connected"} and expects a success answer within ten seconds
Webhook output The URL starts with http:// or https://. Nothing is sent until a rule fires
Google Sheets output Opens the spreadsheet as your connected Google account, creating it the first time
Google Sheets input Reads the sheet through its public link. Fails if the sheet is not shared with “Anyone with the link”
Snowflake, BigQuery, Postgres, MySQL, S3 Connects with your settings and proves Jsonify can write (outputs) or read (inputs). See Warehouses and S3
Read from an API Fetches the endpoint once, without the auth header, and checks it returns JSON
Receive JSON webhook, Publish an API, Pipeline Trigger Checks the dataset or pipeline is set. The URL exists as soon as the integration does
Browser notifications No check. Each browser subscribes separately

Statuses

The status dot on a card and the label in the page header mean the same thing.

Status Colour What it means What to do
Live Green Set up and checked. Inputs accept data, outputs can be sent to, secret URLs work Nothing
Needs setup Amber Created, usually by Jason, but not yet saved with every required field, or the last check failed Open it, fill in Settings and press Save
Paused Grey Turned off. Nothing is sent or accepted Ask Jason to turn it back on, or press Save on its Settings tab
Requested Grey An earlier request for an integration that is not available Contact support
Revoked Red A CLI key that was revoked, or a Jason in Slack channel whose authorising member lost access Issue a new key, or reconnect the channel from Slack

Secret URLs and keys work only while the integration is Live. A request to any other status is refused.

The integration page

Click any card to open it.

A Slack integration page with its status, the Test button and the Settings, Rules, Activity and Delete tabs
An integration page. The header shows its status and last activity; Test is on the right.

The header shows:

  • Icon and name. Click the name to rename it.
  • Status and type, with the variant when it differs, for example “Google Sheets · Push rows to a sheet”.
  • Dataset and pipeline links when the integration points at one.
  • Activity. “Last attempt failed 3h ago” in red when the newest attempt failed (click it to open Activity), otherwise “Last activity 5m ago”, or “Updated 2d ago” if nothing has happened yet.
  • Test. See Save and Test.

Below it are up to five tabs, in this order:

Tab Shown for What it holds
Settings Every integration What the integration does, any connection details (a URL to copy, a Google account, a Snowflake connection), every field, and Save
Code Receive JSON webhook, Publish an API, Pipeline Trigger Code samples for Python, cURL and JavaScript (Node.js), Python first and open. See Triggers
Rules Notification integrations, and outputs that receive rows The alert rules sending here, with a count
Activity Every integration What it sent, received, pulled or started, newest first
Delete Every integration Delete integration

A new integration that still needs details shows “Fill in the remaining details and save to turn this integration on.” above its fields.

Rules

The Rules tab explains what the integration receives. On an output: “This integration is where rows go. Each alert rule decides when and which rows: a whole dataset on every update, what a run published, or only the rows that match.” On a notification integration: “This integration is where messages go. Each alert rule decides when to send one, for a pipeline, a dataset, or the whole workspace.”

Each rule sending here is a card with its on/off switch and a Delete menu item, with a confirmation. Click a card to open the rule’s page. The Add alert rule tile opens the new-rule dialog with this integration already chosen.

The Rules tab of a Google Sheets output with one rule card and an Add alert rule tile
The rules that send rows to this sheet.

Activity

“Every delivery and request through this integration, newest first.” Each entry has a status (Succeeded, Failed or Skipped), a message such as “Received 2 rows into Supplier catalogue v18”, how long ago, the rule that caused it, links to the run and the dataset version, and the error text when it failed. Refresh reloads the list.

Integration Empty state
Notifications “Nothing has been sent here yet. Messages appear when an alert rule fires.”
Outputs “No rows have been sent yet. They go out when the dataset gets a new version.”
Inputs “Nothing has come in yet.”
AI “This integration has no activity to show.”

Where integrations appear elsewhere

Place What you see
An alert rule The Send to choice: every live notification integration and every output that receives rows
A pipeline’s Integrations tab Under How it works: Input integrations, Output integrations and Alert rules for that pipeline, with Add input, Add output and Add alert rule tiles. See Pipelines
A run’s Integrations tab In (what started or fed the run), Alerts (rules that fired) and Out (where its rows went). See Run detail
A dataset page A Connections strip listing the inputs that feed it and any Publish an API output, with Sync when a pulled input exists
A pipeline’s Run dialog “Pipeline Trigger attached”, or “2 triggers attached”, linking to the trigger
A Jason task Notify me, with a Notify me by menu listing browser notifications and every live Slack, email and webhook integration
Conversations Conversations started from Slack, the CLI or an assistant carry a badge naming where they came from

Which integration do I need?

You want to Use
Hear about a failed run or a change in the data, in Slack or by email A notification integration plus an alert rule
Keep a spreadsheet matching a dataset A Google Sheets output plus an Every update rule
Load rows into your warehouse or database A Snowflake, BigQuery, Postgres, MySQL or S3 output plus a rule. See Warehouses and S3
Send rows to your own system when they change A webhook output plus a rule, or Publish an API fetched by your loader
Let an app read the latest rows on demand Publish an API
Feed rows from a form, a partner or an internal job into a dataset A Receive JSON webhook input
Use a sheet, an endpoint or a query result as a pipeline input Google Sheets, Read from an API, or a warehouse input
Start a run from a scheduler, a deploy or another tool A 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 An assistant connection
Let a Slack channel talk to Jason Jason in Slack

Who can do what

Anyone who can open the workspace can see the Integrations page, ask Jason for an integration, edit its settings and delete it. Three things are held to a tighter rule:

  • CLI keys and Jason in 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 belong to your own account and are managed only by you.
  • Browser notifications. Bound to the person who created the integration. A rule sending to it pings that person’s devices only, even though the rule is workspace-wide.

Removing an integration

Remove an integration from the card menu (Delete), the bulk bar after selecting several cards, or the integration page’s Delete tab (Delete integration). Each asks you to confirm.

Deleting is immediate and permanent. The Delete tab says what stops:

  • Notification integrations. “The 2 alert rules sending here will stop delivering.” The rules remain, delivering to Local Notifications only, until you pick another destination.
  • Outputs. “Rows will stop being sent when the dataset updates.” A sheet or table keeps whatever was last written to it.
  • Inputs. “Its URL stops working immediately.”
  • CLI keys and Jason in Slack. “Anything using this credential stops working.” A CLI key is revoked; a Slack channel is disconnected.

Assistant connections are not deleted with workspace integrations, because they belong to your account. Open one and use its Disconnect tab. See Managing connections.

Folders

Every tab supports folders: create, rename and delete them, and move integrations into them from the card menu or the bulk bar. Folders 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 names descriptive too: “Slack #pricing-alerts” reads better in a rule’s Send to list than “Slack”.

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.