Apps for AI agents
Zapier & Make automation
Ounie is a step, not a destination. Point a Zap or a scenario at a brain and content flows in from whatever you already use — then ask that same brain a question mid-workflow and get a cited answer back into the next step.
Auth
One API key
Actions
Add source · Ask brain
Trigger
New brain (Zapier)
Re-runs
Safe to replay
Both integrations authenticate with the same personal key. It is shown in full exactly once.
1Setup
Create an API key#
Both Zapier and Make authenticate with a personal API key. Generate one in Settings → API keys. You will see the full key (ounie_live_…) exactly once — copy it before leaving the page. Keys carry your full account access; revoke any key from the same settings page.
One key per connection, not one key per Zap
A connection is stored once and reused across every Zap or scenario, so you never paste the key twice. Give Zapier and Make separate keys anyway — revoking one then costs you one integration rather than all of your automation at once.2Setup
Connect in Zapier#
The Ounie Zapier app is available at:
https://zapier.com/apps/ounie/integrationsWhen you add the first Ounie step to a Zap, Zapier will prompt you to connect an account. Paste your API key into the API key field and click Yes, Continue. Zapier validates the key against your account and stores it as a named connection you can reuse across Zaps.
The New Brain trigger#
New Brain fires when a brain is created in your account. It also doubles as the dynamic dropdown that populates the Brain picker in both actions, so it needs to be set up even if you never use it as a trigger.
3Setup
Connect in Make#
The Ounie Make app is available in the Make app marketplace. Search for “Ounie” when adding a module to a scenario. On first use, Make prompts you to create a connection — paste your API key into the API key field and click Save. Make validates the key and stores it as a named connection reusable across scenarios.
Make also surfaces typed errors (OutOfSpaceError, RateLimitError), which is what lets you attach a different error-handler route per status code — see quota and errors.
Actions#
Both integrations expose the same two actions, backed by the v1 REST API. They are the two wires leaving the workflow at the top of this page — save out to the brain, answer back from it.
Add source to brainsave
Content in. A URL Ounie fetches and synthesizes, or a title and body you pass straight through.
POST /api/v1/brains/{brainId}/sources
Ask brainanswer
Answers out. A grounded answer with citations, ready to write into the next step of the workflow.
POST /api/v1/brains/{brainId}/ask
Add source to brain#
Choose a brain from a dropdown populated live from your account, then provide either a URL (Ounie fetches and synthesizes the page) or a title and text body. Set Text mode to Note to store text verbatim without LLM processing. Link body:
{
"kind": "link",
"url": "https://example.com/article",
"externalId": "article-42"
}Text body:
{
"kind": "text",
"title": "Meeting notes 2026-06-12",
"content": "…",
"mode": "synthesize",
"externalId": "meeting-2026-06-12"
}The action returns the source record plus a created flag. When created is false the source already existed (idempotent replay — see External ID):
{
"source": {
"id": "src_01abc",
"type": "link",
"title": "Getting Started with Ounie",
"status": "pending",
"externalId": "article-42"
},
"created": false
}Ask brain#
Asks a grounded question against a brain and returns an answer with inline citations. Choose a brain from the dropdown and type or map a question:
{
"question": "What did we decide about the Q3 roadmap?"
}{
"id": "ask_01abc",
"answer": "The Q3 roadmap focuses on [API expansion](https://ounie.com/b/ada/ai/api-expansion).",
"citations": [
{
"slug": "api-expansion",
"title": "API expansion",
"url": "https://ounie.com/b/ada/ai/api-expansion"
}
],
"thin": false
}The answer field contains markdown with citations rewritten to absolute links. The citations array carries the same links as structured data. When the brain has too few sources to answer confidently, thin is true — worth branching on, so a scheduled digest never mails out an answer the brain could not support.
Idempotency with External ID#
Both integrations let you supply an External ID on any source — your own stable identifier such as a Notion page ID, a CMS record id, or a document path. Posting the same External ID to the same brain a second time returns the existing source with created: false rather than creating a duplicate.
This makes retries and re-syncs safe by construction, which is what turns a scheduled Zap from a liability into a habit: a scenario that runs hourly can pass the same id every time and the brain still holds exactly one copy.
Re-sending updated content
The idempotency guarantee is create-level: a repeated External ID returns the existing source unchanged. If your content has changed and you want Ounie to re-process it, use a different External ID (include a version or a modified timestamp) or delete the old source first via the dashboard.Quota and errors#
Asking a brain is metered against your plan's question allowance, and adding a source is checked against its source cap. Every failure is a branch you can attach a route to.
The Free plan draws a one-time, non-expiring bank of questions; paid plans draw a rolling 30-day quota sized by the plan. Current figures live on the pricing page rather than here, so this page can never quote a stale number at you. Notes and links carry no storage cost, so a text-only automation never moves you toward the storage cap.
// 402 — question bank empty (Free plan)
{ "error": "bank_empty", "code": "BANK_EMPTY" }
// 429 — monthly quota exceeded (paid plan)
{ "error": "quota_exceeded", "code": "QUOTA_EXCEEDED" }
// 403 — plan source limit reached
{ "error": "Source limit reached", "code": "SOURCE_LIMIT" }In Zapier these surface as task errors carrying the message above. In Make, the typed errors let you add a separate error-handler route per status code — one that pauses the scenario on 429 and one that alerts you on 401 are the two worth wiring first.
Example automations#
Six shapes worth stealing. The ones that create a source name the External ID that makes them safe to re-run; the ones that only ask do not need one, because nothing is created.
A message lands in #research
Add source
External ID: the Slack message timestamp
A new item appears in an RSS feed
Add source
External ID: the item's GUID
A Google Doc is updated
Add source
External ID: the document id
A support ticket is closed
Add source
External ID: the ticket id
Every Monday at 09:00
Ask brain
External ID: not needed — nothing is created
A form is submitted
Ask brain
External ID: not needed — nothing is created
Not using Zapier or Make?
The same two actions are one HTTP call each — see the REST API. If the thing calling them is an AI agent rather than a workflow, the MCP gateway gives it the same brain plus the whole app fleet from one connection.