Switchyard

Quickstart

Three steps from a fresh install to your first ClickUp task created from a lead payload.

1

Connect ClickUp

Sign in to the Filament admin at /admin, open Integration → ClickUp connection, and click Connect ClickUp. You'll be redirected to ClickUp's authorize screen, then back; the connection row will show Authorized = true and the ClickUp team id you just consented to.

OAuth app required. Register a ClickUp OAuth app at app.clickup.com/api and set the redirect URI to https://api.switchyard.philiprehberger.com/oauth/clickup/callback. Drop CLICKUP_CLIENT_ID and CLICKUP_CLIENT_SECRET in .env before the authorize flow will work.
2

Configure the inbound list + taxonomy

Under Integration → ClickUp config, set the Inbound list ID (find it in ClickUp → List settings → Copy link → the trailing number). Optionally fill the service taxonomy and portfolio examples so incoming leads get auto-tagged and suggested-examples populated.

3

Issue an API key + POST your first lead

Under API keys, create a key with admin_write scope. The plaintext token shows once. Then create a source under Lead sources (slug: scopeforged-form, kind: webhook). Now POST a lead:

curl -X POST https://api.switchyard.philiprehberger.com/v1/leads \
  -H "Authorization: Bearer swy_<your_key>" \
  -H "Content-Type: application/json" \
  -d '{
    "source_slug": "scopeforged-form",
    "payload": {
      "name": "Jane Doe",
      "email": "jane@example.com",
      "message": "Need a Next.js + Supabase MVP. Budget ~$10k. Timeline 4 weeks."
    }
  }'

Returns 202 + queues an IngestLeadJob. Within a second the lead lands in the inbox, gets enriched, and (if auto-route is on) lands in your ClickUp list as a new task.

Next steps