Opzione A — Hosted (app.switchbord.ai)
Se sei un operatore che si unisce a un team esistente o avvia una nuova area di lavoro sulla piattaforma hosted:
- Registrati su app.switchbord.ai.
- Crea un’area di lavoro (oppure accetta l’invito di un admin di un’area di lavoro esistente).
- Vai su Impostazioni → Provider e collega il tuo account Meta Business e il numero di telefono WhatsApp.
- Segui la guida Connetti WhatsApp per il percorso completo di configurazione delle credenziali.
Se sei stato invitato a un’area di lavoro e finisci su /pending-access, il tuo invito è ancora in elaborazione. Contatta l’admin della tua area di lavoro.
Opzione B — Configurazione locale per contributori
Installazione
Convalida dell’area di lavoro
Configura i file di ambiente
Copia i file di esempio prima di avviare l’area di lavoro:
Se stai lavorando sul comportamento del worker o del runtime dei webhook, esegui anche:
apps/control-plane è stato rimosso. Non creare un file .env.local per esso.
Variabili minime di Supabase
NEXT_PUBLIC_SUPABASE_URL
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY
SUPABASE_SECRET_KEY — per i percorsi admin lato server
WHATSAPP_PLATFORM_DATA_MODE=supabase — solo per le superfici con un’implementazione reale basata su Supabase
WORKSPACE_BOOTSTRAP_ADMIN_EMAILS — consigliata per qualsiasi ambiente condiviso o hosted, per impostare il primo operatore privilegiato
WORKSPACE_ALLOW_FIRST_CLAIM=true — solo per la richiesta intenzionale e una tantum del ruolo owner da parte del primo utente durante il bootstrap locale
Il repository accetta ancora NEXT_PUBLIC_SUPABASE_ANON_KEY e SUPABASE_SERVICE_ROLE_KEY come alias legacy, ma la nuova configurazione dovrebbe usare le forme publishable key e secret key.
WHATSAPP_META_ACCESS_TOKEN — per il worker
WEBHOOK_SIGNATURE_SECRET — per apps/api
META_WEBHOOK_VERIFY_TOKEN — per la verifica esplicita della challenge del webhook
SUPABASE_DB_URL — se usi Supabase Vault per i segreti dei provider gestiti dall’area di lavoro
Se un utente autenticato non è ancora stato inserito in un’area di lavoro, l’app operatore lo instrada su /pending-access finché un invito non viene accettato o le regole di bootstrap non concedono l’appartenenza.
Se il primo operatore locale rimane bloccato su /pending-access, non eliminare l’utente auth. Risolvi il bootstrap impostando WORKSPACE_BOOTSTRAP_ADMIN_EMAILS, abilitando temporaneamente WORKSPACE_ALLOW_FIRST_CLAIM=true, oppure inserendo manualmente la riga mancante in workspace_members.
Consulta Ambiente per il contratto completo di configurazione del runtime.
Avvia l’area di lavoro
Porte locali
- app:
3000
- web:
3001
- api:
3002
- docs:
3004
- storybook:
6006
- worker: processo in background, nessuna porta HTTP
Percorsi più utili
- posta in arrivo dell’operatore:
http://localhost:3000/inbox
- diagnostica del runtime:
http://localhost:3000/runtime
- readiness dell’API:
http://localhost:3002/ready
- specifica OpenAPI:
http://localhost:3002/spec
- ingress webhook Meta:
http://localhost:3002/webhooks/meta
Ipotesi di lavoro
- i feature flag sono attivi (
on) di default
- il contratto env di Supabase deve essere soddisfatto prima che qualsiasi superficie usi Supabase direttamente
- la migrazione forward-only è la postura attiva
- la migrazione storica dei messaggi è intenzionalmente fuori dall’ambito per la prima versione
Leggi anche