# Webhook Transforms > Framework genérico para convertir eventos externos (SMS, reuniones, menciones sociales) en señales ingeribles por el brain mediante funciones de transformación registradas vía webhook. Fuente: https://skillsagentes.com/skills/garrytan/gbrain/webhook-transforms Markdown: https://skillsagentes.com/skills/garrytan/gbrain/webhook-transforms.md Repositorio: https://github.com/garrytan/gbrain Autor: garrytan Licencia: MIT Actualizado: hace 4 meses Coste de contexto: 57 tok instalada, 616 tok al activarse, 616 tok con todos los archivos del bundle Bundle: 1 archivo, 2 KB Permisos que pide: put_page, add_timeline_entry, search ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add garrytan/gbrain --skill webhook-transforms --agent claude-code # Cursor npx -y skills add garrytan/gbrain --skill webhook-transforms --agent cursor # Codex npx -y skills add garrytan/gbrain --skill webhook-transforms --agent codex # Gemini CLI npx -y skills add garrytan/gbrain --skill webhook-transforms --agent gemini # Windsurf npx -y skills add garrytan/gbrain --skill webhook-transforms --agent windsurf # Cline npx -y skills add garrytan/gbrain --skill webhook-transforms --agent cline ``` ## Qué hace - Convierte eventos externos (SMS, reuniones, menciones sociales) en páginas de brain con citas mediante una función de transformación - Sanitiza el payload eliminando HTML/scripts antes de escribir en el brain - Extrae entidades y agrega entradas de timeline a las entidades mencionadas - Registra fallos de transformación en una cola dead-letter y reintenta una vez - Sincroniza los cambios con gbrain sync tras escribir la página ## Cuándo usarla - Necesitas configurar un webhook para ingerir eventos externos al brain - Quieres transformar y procesar un evento entrante (SMS, reunión, mención social) ## Qué la activa - "Configura un webhook para recibir SMS entrantes" - "Procesa este evento de webhook y agrégalo al brain" - "Transforma esta mención de Twitter en una página del brain" ## Antes de instalar - Requiere tener definida una función de transformación y acceso a gbrain put/sync. ## Archivos - SKILL.md — 2 KB ## SKILL.md Reproducido tal cual desde garrytan/gbrain bajo MIT. Esta sección es el documento original y está en inglés. # 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 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}" ## 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 ## Dónde encaja - Categoría: [Automatización](https://skillsagentes.com/categorias/automatizacion.md) — Flujos de varios pasos que se ejecutan sin supervisión. - Creador: [garrytan](https://skillsagentes.com/creators/garrytan.md) — 134 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Setup](https://skillsagentes.com/skills/garrytan/gbrain/setup.md): Configura GBrain con auto-aprovisionamiento de Supabase o PGLite, inyección en AGENTS.md y primera importación. - [Maintain](https://skillsagentes.com/skills/garrytan/gbrain/maintain.md): Chequeos de salud del brain: aplicación de back-links, auditoría de citas, validación de filing, detección de info obsoleta, páginas huérfanas y benchmarks. - [Schema Unify](https://skillsagentes.com/skills/garrytan/gbrain/schema-unify.md): Migra un brain de gbrain-base a la taxonomía de 14 tipos canónicos de gbrain-base-v2 usando gbrain onboard --check y el handler Minion unify-types. - [Retrieval Reflex](https://skillsagentes.com/skills/garrytan/gbrain/retrieval-reflex.md): Cuándo y qué recuperar: abre la página del brain de una entidad relevante antes de responder desde memoria. - [Minion Orchestrator](https://skillsagentes.com/skills/garrytan/gbrain/minion-orchestrator.md): Skill unificado de Minions para jobs deterministas de shell y orquestación de subagentes LLM: cola durable, observable y controlable, más la doctrina de ejecución durable para operaciones largas. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)