
Webhook Transforms
- 164 installs
- 27.8k repo stars
- Updated August 5, 2026
- garrytan/gbrain
Map inbound webhook payloads from Slack, GitHub, calendars, or custom services into gbrain events and records agents can process automatically.
About
The webhook-transforms skill for garrytan/gbrain implements transformation rules that convert external webhook JSON into canonical gbrain events and entities, enabling automated ingestion from SaaS tools and custom HTTP sources.
- Payload normalization pipelines
- Third-party event adapters
- Schema mapping to gbrain records
- Enables real-time external triggers
- Supports automation without manual ingest
Webhook Transforms by the numbers
- 164 all-time installs (skills.sh)
- Ranked #2,358 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/garrytan/gbrain --skill webhook-transformsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 164 |
|---|---|
| repo stars | ★ 27.8k |
| Last updated | August 5, 2026 |
| Repository | garrytan/gbrain ↗ |
What it does
Map inbound webhook payloads from Slack, GitHub, calendars, or custom services into gbrain events and records agents can process automatically.
Files
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
1. 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
2. Register webhook URL. Provide the external service with the webhook endpoint.
3. 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
4. Error handling:
- If transform throws: log raw payload to
_dead-letter/{timestamp}.md - Surface error type to agent
- Retry once
- Don't lose events
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 detectedMeeting Completed
Input: {title: "Weekly sync", attendees: [...], transcript: "...", summary: "..."}
Output: Delegate to meeting-ingestion skillSocial Mention
Input: {platform: "twitter", author: "@handle", text: "...", url: "..."}
Output: Brain page in media/ + entity extraction + backlinksOutput Format
Event transformed and written to brain. Report: "Webhook: {event_type} from {source} → {brain_page_path}"
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