webhook-transforms
Generic framework for converting external events (SMS, meetings, social mentions) into brain-ingestible signals. Define a transform function, register a webhook URL, and incoming events get processed through the brain pipeline.
- License 许可
- MIT
- 所属仓库
- garrytan/gbrain
- 最近更新
- 2026-11-12
- Stars
- ★ 3.3w
- Forks
- 4.9k
01 前言 Front Matter
- name
- webhook-transforms
- tools
- [ "put_page", "add_timeline_entry", "search" ]
- version
- 1.0.0
- mutating
- true
- triggers
- [ "set up webhook", "process webhook event", "transform this event" ]
- description
- Generic framework for converting external events (SMS, meetings, social mentions) into brain-ingestible signals. Define a transform function, register a webhook URL, and incoming events get processed through the brain pipeline.
03 SKILL.md 正文
Webhook Transforms
Contract
This skill guarantees:
- External events are transformed into brain pages with proper citations
- Raw payloads are preserved (dead-letter queue if transform fails)
- Entity extraction runs on every transformed event
- Input sanitization: no raw HTML/script passes to brain pages
- Error handling: transform failure logs raw payload, retries once
Phases
-
Define transform. Map event schema to brain page format:
- Input: raw webhook payload (JSON)
- Output: brain page content (markdown) + metadata (slug, type, citations)
- Must sanitize: strip HTML tags, escape script content
-
Register webhook URL. Provide the external service with the webhook endpoint.
-
On event received:
- Parse payload
- Run transform function
- Write brain page via
gbrain put - Extract entities, run enrichment
- Add timeline entries to mentioned entities
- Sync:
gbrain sync
-
Error handling:
- If transform throws: log raw payload to
_dead-letter/{timestamp}.md - Surface error type to agent
- Retry once
- Don't lose events
- If transform throws: log raw payload to
Example Transforms
SMS Received
Input: {from: "+1555...", body: "Meeting moved to 3pm", timestamp: "..."}
Output: Timeline entry on sender's brain page + task update if action item detected
Meeting Completed
Input: {title: "Weekly sync", attendees: [...], transcript: "...", summary: "..."}
Output: Delegate to meeting-ingestion skill
Social Mention
Input: {platform: "twitter", author: "@handle", text: "...", url: "..."}
Output: Brain page in media/ + entity extraction + backlinks
Output Format
Event transformed and written to brain. Report: "Webhook: {event_type} from {source} → {brain_page_path}"
When it fails
Follow the agent operator protocol for any gbrain error code, exit code, [AGENT] block or notice block. Specific to this skill:
- A transformed write returns
write_pending(exit 10): the event is accepted; record the request id and poll it, never replay the event under a new id. source_binding_required/insufficient_scope: the webhook's token cannot write that source; tell the user which grant the brain host's operator must add.- A malformed payload: reject it with the parse error and log it; do not write a partial page.
Anti-Patterns
- Passing raw HTML/script to brain pages (XSS risk)
- Silently dropping events when transform fails (use dead-letter queue)
- Processing webhooks without entity extraction
- Not sanitizing external input before brain writes
04 同仓库更多 Skills
query-helper
暂无简介
broken
暂无简介
brain-ops
Read, enrich, and write brain pages with source attribution.
meeting-prep
Build a briefing before you meet someone, from their recent threads, open loops and what they care about.
inbox-zero
Triage the inbox into replies, delegations and archives.
deal-memo
Draft an investment memo from the deal pages and the founder history already in the brain.