alfadocs-webhooks

Parse AlfaDocs form-urlencoded webhook payloads into structured events and route them by archiveId.

Updated Mar 9, 2026
One-click install
npx skills add https://github.com/alfadocs/ai-harness-instructions --skill alfadocs-webhooks
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: alfadocs-webhooks
Source: https://github.com/alfadocs/ai-harness-instructions/tree/main/lovable/skills/alfadocs-webhooks
Command: npx skills add https://github.com/alfadocs/ai-harness-instructions --skill alfadocs-webhooks

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you receive and process AlfaDocs webhook notifications without breaking the integration, especially when events arrive as form-urlencoded payloads instead of JSON and multiple records are batched into one POST.

Core Features & Use Cases

  • Webhook Parsing: Converts indexed bracket-form fields into structured event objects for appointment, patient, and document notifications.
  • Tenant Routing: Resolves archive identifiers from the payload and maps them to the correct connected practice in Supabase.
  • Reliable Delivery Handling: Ensures your Edge Function returns HTTP 200, logs failures safely, and avoids retry-triggering response codes.
  • Use Case: A Supabase Edge Function receives AlfaDocs event notifications, parses the raw body, routes each event by archiveId, and updates the correct tenant-scoped records.

Quick Start

Use this skill to build a Supabase Edge Function that reads AlfaDocs webhook POSTs, parses the raw form body, and routes each event by archiveId.

Frequently Asked Questions about alfadocs-webhooks

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I parse form-urlencoded webhook payloads in a Supabase Edge Function?

To parse form-urlencoded webhook payloads in a Supabase Edge Function, read the raw request body and use URLSearchParams to convert indexed bracket-form fields into structured event objects for reliable processing.

Why does my Supabase Edge Function receive repeated AlfaDocs webhook retries?

Supabase Edge Functions receive repeated AlfaDocs webhook retries when the endpoint fails to return an unconditional HTTP 200 response immediately after parsing the raw body, triggering retry mechanisms.

How do I handle multiple indexed records batched in a single webhook POST?

Handling multiple indexed records batched in a single webhook POST requires expanding bracket-key notation from the raw body into separate structured event objects before routing them individually.

How do I route AlfaDocs webhook events to the correct tenant in Supabase?

Routing AlfaDocs webhook events to the correct tenant in Supabase involves resolving the archiveId from the parsed payload and mapping it to the appropriate connected practice using service-role database access.

Can I process AlfaDocs appointment and patient notifications as JSON payloads?

AlfaDocs appointment and patient notifications cannot be processed as JSON payloads because they arrive exclusively as form-urlencoded data, requiring URLSearchParams parsing instead of standard JSON deserialization.

What is the best way to structure Supabase Edge Functions for AlfaDocs webhooks?

The best way to structure Supabase Edge Functions for AlfaDocs webhooks is to parse raw bodies with URLSearchParams, route events by archiveId, apply service-role database access, and return HTTP 200 unconditionally.