Content ingestion
Waveform can accept structured content from outside the chat — a CMS export, a docs pipeline, or an editorial tool — and map it into pages and collections without a full redesign.
What you can push
Send markdown, HTML, or JSON to a project content slot:
- Replace or merge into an existing page/section.
- Attach assets when the payload references them.
- Optionally dedupe with a stable
dedupe_keyso retries stay idempotent.
Ask in chat to wire a slot ("expose the blog body as an ingest target"), or manage sources from Settings when the ingest UI is enabled.
API
Authenticated projects expose:
GET /api/v1/projects/:id/content-slots— list ingest targetsPOST /api/v1/projects/:id/ingest— push a payload (format,content,mode, optionaltarget/assets/dedupe_key)
Use a session or personal API key. Ingest can be disabled per environment
(INGEST_API=false).
Signed webhooks
For machine-to-machine pushes, create an ingest hook with a shared secret.
Inbound requests must include an HMAC signature (sha256=<hex>). Invalid
signatures are rejected; valid payloads run the same mapping and build
path as the authenticated API.
After ingest
Successful writes update content in R2 and can enqueue a staging or production rebuild so the live site reflects the new copy. Check the Content tab or ask the assistant to review what changed.
Related
- Content & CMS — native collections and headless adapters
- Forms — lead capture (separate from content ingest)