Skip to main content
Switchbord può replicare la knowledge base della tua area di lavoro in un agente conversazionale AI ElevenLabs, così le chiamate vocali rispondono utilizzando gli stessi fatti che Margaret vede in chat. Questo documento descrive la configurazione iniziale, il flusso di sincronizzazione e i controlli operativi.

Cosa viene sincronizzato

Ogni riga in workspace_knowledge_entries il cui array tags contiene kb o memory è una candidata. In particolare:
  • Le voci curate di FAQ/documenti/policy che gli operatori scrivono tramite l’interfaccia della Knowledge Base (kb).
  • Le note a lungo termine che Margaret ha salvato tramite lo strumento writeWorkspaceMemory (memory).
Ogni voce viene inviata alla knowledge base dell’agente ElevenLabs configurato. L’ID del documento remoto viene salvato in workspace_knowledge_entries.elevenlabs_document_id, così le sincronizzazioni ripetute sono idempotenti — le nuove righe vengono create, quelle esistenti vengono aggiornate senza duplicati.

Configurazione

  1. Ottieni una API key ElevenLabs da elevenlabs.io/app/settings/api-keys.
  2. Crea (o scegli) un agente conversazionale AI su elevenlabs.io/app/conversational-ai. Copia il suo agent ID (formato: agent_...).
  3. In Switchbord, vai su Impostazioni → Integrazioni → AI → Voce (ElevenLabs).
  4. Incolla la API key (memorizzata per area di lavoro nel Supabase Vault) e l’agent ID (memorizzato in workspaces.elevenlabs_agent_id).
  5. Clicca su Test connessione — questo richiama GET /v1/convai/agents/{agent_id} con la tua chiave e restituisce il nome dell’agente in caso di successo.

Flusso di sincronizzazione

Dall’interfaccia delle impostazioni

La stessa pagina contiene una card Sincronizzazione knowledge base con due pulsanti:
  • Plan (dry run) — legge la KB dell’area di lavoro e riporta quali voci verrebbero create o aggiornate, senza toccare ElevenLabs.
  • Sincronizza ora — legge la API key dal vault, poi invia una richiesta POST (o PATCH) per ogni voce candidata alla KB dell’agente ElevenLabs.

Da Margaret

Gli operatori con il ruolo admin possono chiedere a Margaret:
“Sincronizza la nostra KB con l’agente ElevenLabs.”
Margaret richiama lo strumento syncElevenLabsKnowledge. Per default esegue un dry run che riporta il piano in chat. Impostando dryRun: false viene mostrata una card di approvazione HITL secondo il pattern ToolApprovalCard — una volta approvata, Margaret esegue l’invio effettivo.

Dalla API

Struttura della risposta:

Sicurezza

  • La API key risiede nel Supabase Vault per area di lavoro (tipo di secret elevenlabs-api-key). Solo l’indizio mascherato viene restituito all’interfaccia.
  • L’agent ID è in chiaro su public.workspaces — non è un secret.
  • Gli endpoint di sincronizzazione e impostazioni richiedono requireSettingsAccess (ruolo owner/admin). Lo strumento syncElevenLabsKnowledge di Margaret richiede inoltre il ruolo di accesso agli strumenti admin e un’approvazione HITL prima di un invio effettivo.

Limitazioni note (ship 1)

  • La struttura del payload dei documenti della KB ElevenLabs potrebbe evolversi. La rotta di sincronizzazione ha come default dryRun: true, così gli operatori possono visualizzare in anteprima prima di chiamare la API remota.
  • Non esiste ancora un percorso di eliminazione — rimuovere una riga in Switchbord non elimina il documento da ElevenLabs. Tracciato tramite BORD-TBD.
  • Il test di connessione al momento richiama GET /v1/convai/agents/{agent_id}. Se ElevenLabs modifica i propri codici di errore, l’interfaccia mostra lo stato HTTP grezzo.