Appearance
Webhooks
Inbound (GitHub & Linear)
Inbound webhooks create memories automatically for an organization.
Setup (dashboard)
- Sign in as an owner at
/app. - Open Integrations for your organization.
- Click Add GitHub webhook and copy the URL and secret when shown.
- In GitHub → repository → Settings → Webhooks, paste the URL, set content type to
application/json, and paste the secret. - Enable events: push and/or issues.
Endpoint
POST /webhooks/github/{webhookId}
Headers (GitHub default):
X-Hub-Signature-256: HMAC SHA-256 of the raw bodyX-GitHub-Event: e.g.push,issuesX-GitHub-Delivery: unique delivery id (used for idempotency metadata)
Invalid signatures return 401. Accepted payloads are queued and ingested with metadata { source: "github", project: "{owner}/{repo}", ... }.
Content scanning (OB-045) and audit logging (OB-047) apply to webhook ingest like API ingest.
Linear ingest
- In Integrations, click Add Linear webhook and copy the URL and secret.
- In Linear → Settings → API → Webhooks, add the URL and signing secret.
- Subscribe to Issue and/or Comment events (must match the events selected in the OpenBrain dashboard).
POST /webhooks/linear/{webhookId}
- Header
Linear-Signature: hex HMAC-SHA-256 of the raw body - Header
Linear-Delivery: delivery id (stored in metadata) - Body
type:Issue,Comment, etc.
Invalid signatures return 401.
Outbound (customer notifications)
Owners can register HTTPS endpoints that receive signed JSON when memories change.
Setup
- Integrations → Add outbound webhook
- Choose events:
memory.ingested,memory.updated,memory.deleted - Copy the signing secret (shown once)
Delivery
OpenBrain POSTs to your URL with:
X-OpenBrain-Event: event nameX-OpenBrain-Signature:sha256=HMAC of the raw JSON body
Payload (no raw memory content by default):
json
{
"event": "memory.ingested",
"timestamp": "2026-05-22T12:00:00+00:00",
"payload": {
"id": "thought-uuid",
"outcome": "created",
"metadata": { "source": "api", "project": "my-app" }
}
}Failed deliveries retry up to three times via the queue worker.