- Costruisci
- Configura le functions
Configura le functions dell'agente
Le functions danno all'agente vocale modi controllati per agire durante la chiamata: trasferire la chiamata, salvare un callback, registrare dati strutturati o chiamare un'API.
Il punto più importante è collegare RocketAiFlow agli strumenti che l'azienda usa già. Tramite functions basate su API, l'agente può aggiornare CRM, controllare disponibilità, creare follow-up, instradare richieste o usare software interni automaticamente seguendo le regole che definisci.
Come decidere cosa mettere in una function
Usa una function quando l'agente deve eseguire un'azione reale, non solo parlare.
Le functions collegano la conversazione al workflow aziendale. Con una function, l'agente può trasferire una chiamata, salvare dati, creare un follow-up o usare un software aziendale tramite API.
Non creare una function per regole che possono stare nel prompt. Tono di voce, frasi da dire, domande da fare e comportamento conversazionale vanno nel prompt.
Crea una function quando l'agente deve:
- trasferire la chiamata
- chiudere la chiamata
- salvare dati raccolti durante la conversazione
- recuperare informazioni da un altro sistema
- aggiornare un CRM o un altro software tramite API
- creare follow-up, callback, task, ticket, lead o appuntamenti
Dove si configurano le functions
Apri l'AI Voice Agent e usa l'area Functions per aggiungere functions preconfigurate o creare una function custom basata su API.
Per ogni function configura nome, descrizione, comportamento endpoint, parametri, campi required, valori enum e valori dinamici necessari.
- usa le functions preconfigurate per call control e azioni comuni del workflow
- usa functions custom quando l'agente deve chiamare software usati dall'azienda
- salva la function, poi cita nel prompt dell'agente il nome esatto della function e la condizione in cui deve essere chiamata

Esempi di functions preconfigurate
RocketAiFlow include funzioni pronte che puoi usare come base di partenza invece di costruire ogni azione da zero.
Usa prima questi esempi quando corrispondono al workflow. Quando l'agente deve chiamare sistemi aziendali tramite API, RocketAiFlow ti permette di creare e chiamare tutte le functions custom necessarie al workflow.
Per hangup_call, transfer e rescheduled_contact, mantieni i parametri preconfigurati esattamente come sono. Non eliminarli, non rinominarli e non modificarne la struttura. Sono già allineati alle API interne di RocketAiFlow. Adatta solo descrizioni e valori consentiti dove la funzione lo richiede.
hangup_call: chiude la chiamata quando il workflow è completo.transfer: trasferisce la chiamata a una destinazione umana o a un interno.rescheduled_contact: salva una data futura di callback per il contatto.save_lead_qualification: registra il risultato di qualificazione lead raccolto dall'agente.
hangup_call
Usa hangup_call quando l'agente deve chiudere la chiamata attiva dopo aver completato il workflow.
Quando selezioni questa funzione preconfigurata, RocketAiFlow imposta automaticamente l'endpoint interno usato per chiudere la chiamata. Non devi configurare manualmente l'endpoint.
Mantieni il parametro reason esattamente come viene fornito. Non eliminarlo, non rinominarlo e non modificarne la struttura. Cambia solo le descrizioni:
In questo modo l'endpoint resta sicuro e l'LLM si concentra sul decidere quando la chiamata è completa e quale motivo di chiusura deve essere registrato.
- descrizione funzione: spiega quando l'agente deve terminare la chiamata
- setup di
reason: lascialo come string required e mantieniUse enumabilitato - descrizione del parametro
reason: spiega quale motivo l'agente deve passare quando chiude la chiamata booking_completed: usalo quando l'obiettivo principale della conversazione è stato completatogoodbye: usalo quando la conversazione si è conclusa naturalmente e non c'è altro da direabandoned_call: usalo quando l'utente smette di partecipare o la chiamata non è più utilizzabile

transfer
Usa una funzione di transfer quando l'agente deve spostare la chiamata attiva verso un'altra destinazione.
RocketAiFlow include opzioni di transfer preconfigurate che usano automaticamente l'API interna di transfer. Scegli l'opzione più adatta al workflow, poi modifica solo descrizioni e valori consentiti. Non eliminare, rinominare o sostituire il parametro exten fornito.
Se non selezioni un contesto di transfer personalizzato, RocketAiFlow usa il contesto di default raf-internal. Mantieni Priority a 1, salvo routing telefonico specifico.
transfer: trasferisce la chiamata al numero di telefono o interno fornito nel parametroexten.transfer_call: viene creata da Transfer To Extension. Usala per un interno o numero noto. Mantieniextenrequired e lasciaUse enumdisattivato. Esempio: transfer a600.transfer_to_service: viene creata da Transfer To Service. Usala per un reparto supportato. Mantieniextenrequired eUse enumabilitato con valori comesales,supporteadministration.- Mode e Priority: usa
Customsolo quando serve un contesto di transfer diverso, e cambia la priority solo quando la rotta lo richiede.


rescheduled_contact
Usa rescheduled_contact quando il contatto chiede di essere richiamato più avanti o quando il workflow deve salvare un callback futuro.
Questa funzione preconfigurata usa il parametro data. Non eliminarlo, non rinominarlo e non modificarne la struttura. Il parametro data serve a salvare data e ora richieste dall'utente per la prossima chiamata.
Quando la funzione viene eseguita, la chiamata rischedulata può essere salvata in:
Per questa funzione cambia solo descrizioni e valore campagna quando serve. Mantieni la struttura dei parametri fornita, così l'agente può raccogliere l'orario di callback richiesto e salvare il contatto nella campagna corretta.
- la campagna selezionata nella configurazione della funzione
- la campagna di default associata all'agente, se non viene selezionata una campagna specifica

save_lead_qualification
Usa save_lead_qualification quando l'agente deve raccogliere informazioni strutturate e salvare il risultato di qualificazione di un lead.
A differenza delle funzioni di call control come hangup_call o transfer, questa funzione è pensata per essere adattata all'obiettivo di business. Mantieni solo i parametri utili al tuo flusso di qualificazione e aggiungine di nuovi quando l'agente deve raccogliere più informazioni.
In molti workflow, save_lead_qualification può essere chiamata più volte durante la stessa chiamata. Usa chiamate ripetute per salvare informazioni parziali man mano che l'agente le raccoglie, invece di aspettare solo la fine e rischiare di perdere dati utili.
Parti dallo schema di esempio, poi rimuovi i campi che non servono alla campagna o al flusso inbound. Mantieni solo i dati che andrai davvero a rivedere, riportare o inviare a un altro sistema.
Dopo aver cambiato lo schema, aggiorna descrizione della function e descrizioni dei parametri, così l'LLM sa cosa raccogliere prima di ogni salvataggio.
- parametri di esempio preimpostati: lead_name, phone, email, company_name, role, interested, qualification_status
- salvataggio progressivo: chiama la function dopo aver raccolto campi importanti, poi richiamala quando sono disponibili nuovi dati di qualificazione
- campi utili: interesse del customer, range di budget, dimensione azienda, canale di follow-up preferito, outcome di qualificazione e note chiamata

Le functions possono usare software aziendali tramite API
Questo è il valore principale delle functions: l'agente non si limita a parlare. Può usare le API degli strumenti che l'azienda usa già ed eseguire automaticamente azioni strutturate.
Usa functions basate su API solo dove il workflow richiede un'azione esterna controllata. L'agente decide quando la function deve partire; RocketAiFlow invia la richiesta strutturata all'endpoint configurato.
- aggiornare un CRM dopo la qualificazione di un lead
- controllare disponibilità o recuperare dettagli account
- creare follow-up, ticket, task, opportunità, note, preventivi o appuntamenti
- chiamare software interni che espongono un endpoint API sicuro
Functions custom con API
Usa una function custom con API quando una function preconfigurata non basta e l'agente deve chiamare un tool aziendale, un provider o un servizio interno.
RocketAiFlow può creare functions custom per qualunque workflow che espone un endpoint API raggiungibile. Puoi aggiungere più functions custom allo stesso agente quando il workflow richiede azioni aziendali diverse.
Una function custom definisce la chiamata API: metodo, URL, headers, body o valori query, parametri generati dall'LLM, valori renderizzati dal contatto, uso della risposta e gestione errori.
- Method e URL: scegli GET, POST, PUT, PATCH o DELETE e usa una URL fissa o una template URL come https://api.example.com/contacts/{t.externalId}/notes.
- Headers e auth: aggiungi autenticazione e header richiesti dall'API, come Authorization o Content-Type.
- Parametri LLM: valori che l'agente raccoglie o decide durante la chiamata, come location, callback_reason, interest_level, note o appointment_date.
- Parametri contact/template: valori renderizzati dal contatto attivo, come {t.name}, {t.phone}, {t.email}, {t.externalId} o dati custom del contatto.
- Campi required ed enum: marca un valore come required quando l'API non può partire senza quel dato, e usa enum quando l'API accetta solo opzioni fisse.
- Risposta ed errori: descrivi come l'agente deve usare la risposta API e quale fallback usare se l'API non è disponibile, rifiuta la richiesta o restituisce dati mancanti.


I valori dinamici appartengono agli input delle functions
Gli input delle functions non devono restare statici. Possono combinare valori raccolti dall'LLM con valori renderizzati dal contatto attivo o dal contesto del workflow.
Quando i dati del contatto sono disponibili, usa i campi del contatto in descrizioni, template URL, body o query. Così una stessa function funziona su contatti diversi senza hardcodare URL specifiche.
Esempio: se una function custom PUT deve aggiornare un contatto nel tuo CRM e l'id del CRM è stato caricato nei dati del contatto come externalId, puoi usare quel valore nella URL API, per esempio https://crm.example.com/contacts/{t.externalId}. RocketAiFlow renderizza l'id dal contatto attivo, mentre l'LLM genera solo i campi da aggiornare, come stato, note o risultato della qualificazione.
Usa valori dinamici quando la stessa function deve comportarsi diversamente per contatto, campagna, route, metadata chiamata o informazioni raccolte durante la conversazione.
- campi del contatto come name, phone, email, campaign id, externalId o chiavi custom dentro data
- template URL API che includono valori del contatto quando l'endpoint ne ha bisogno
- metadata di workflow, campagna, route o chiamata
- valori raccolti durante la conversazione
Come strutturare le descrizioni delle functions
OpenAI raccomanda nomi funzione, descrizioni parametro e istruzioni chiare. In RocketAiFlow, considera la descrizione della function come il contratto di chiamata: deve dire all'LLM cosa fa la function, quando chiamarla, quali dati servono e quando non chiamarla.
OpenAI non richiede heading Markdown come # dentro la description della function. Usa testo chiaro oppure label brevi come Scopo, Chiamala quando, Non chiamarla quando e Argomenti solo se rendono la descrizione più leggibile.
Tieni la policy del workflow nel prompt dell'agente, poi usa descrizione della function e descrizione dei parametri per rendere precisa ogni azione API.
- Nome function: usa un nome azione stabile, per esempio save_lead_qualification o transfer_to_service.
- Descrizione function: parti dall'azione di business, poi aggiungi la condizione di attivazione: chiamala quando...
- Regola negativa: spiega quando la function non deve essere chiamata, soprattutto se mancano informazioni required.
- Parametri required: descrivi cosa l'agente deve raccogliere prima della chiamata. Se manca un valore required, l'agente deve fare prima una breve domanda di follow-up.
- Descrizione parametri: specifica significato, origine del valore, formato, esempi e valori consentiti.
- Enum: usali solo per insiemi chiusi e rendi chiaro il significato di ogni valore consentito.
- Valori renderizzati dal contatto: indica quando un valore arriva dal contatto attivo, per esempio
{t.externalId}, invece di essere generato dall'LLM. - Una function deve rappresentare una sola azione di business. Evita di mischiare transfer, salvataggio dati, lookup e update nella stessa function.
- Mantieni allineati prompt e descrizioni: stesso nome function, stesso trigger, stessi campi required.
Spiega all'LLM quando chiamare ogni function
In RocketAiFlow non basta dare un nome chiaro alla function. Nel prompt dell'agente aggiungi una breve sezione Functions e collega ogni situazione di business al nome esatto della function da chiamare. Vedi Configura il prompt.
OpenAI descrive le function come strumenti che permettono al modello di usare funzionalità e dati esterni quando servono per seguire le istruzioni. Vedi la guida OpenAI sulle function calling e la prompt guidance di OpenAI.
Scrivi il prompt come una regola operativa, non come una descrizione generica della funzionalità.
transfer_to_service: chiamala solo quando il chiamante chiede un reparto supportato, per esempio sales, support o administration. Usa il valore enum corretto inexten.transfer_call: chiamala quando il chiamante chiede esplicitamente di parlare con una persona o quando il workflow richiede un trasferimento a un interno noto.rescheduled_contact: chiamala solo dopo che il chiamante ha chiesto di essere ricontattato e l'agente ha raccolto o confermato data e ora del callback.save_lead_qualification: chiamala quando sono stati raccolti campi utili per la qualificazione. Può essere chiamata più volte durante la stessa chiamata per salvare progressivamente i dati, poi richiamata quando sono disponibili nuove informazioni. Se manca un campo required per quell'aggiornamento, fai prima una breve domanda di follow-up.hangup_call: chiamala solo quando la conversazione ha raggiunto un punto di chiusura chiaro, per esempio prenotazione completata, saluto finale, chiamata abbandonata o silence timeout.- Per ogni function, aggiungi anche una regola negativa: non chiamarla se mancano le informazioni richieste o se l'utente non ha espresso l'intenzione corretta.
Prima validazione
Dopo aver salvato le functions, conferma che:
- i nomi delle funzioni siano chiari
- i parametri required siano presenti
- le destinazioni di transfer siano valide
- il prompt dica all'agente quando chiamare ogni funzione
- l'agente non chiami una function quando mancano informazioni required
- le functions basate su API inviino il payload atteso allo strumento aziendale di destinazione
- i callback rischedulati vengano salvati nella campagna prevista quando serve salvarli in campagna
Errori comuni sulle functions
- aggiungere troppe functions non correlate nello stesso agente
- usare nomi parametro poco chiari
- non allineare il prompt alle funzioni disponibili
- testare transfer senza una destinazione valida
- usare un'API aziendale senza controllare autenticazione, campi required e gestione errori
- mettere troppe azioni di business non correlate dentro la stessa function