https://retellai.com/?utm_source=discord&utm_medium=seo logo
based on documentation and discord chat, comment j...
# ❓・ai-evy-support
s
@AI Evy based on documentation and discord chat, comment je peux faire pour recreer le builder visuel des conversation flow comme nous avons dans le dashboard ? Est ce que technoquement j'ai tout ce qui faut comme api pour le faire ?
a
Thanks for tagging me @so16. I'll look through relevant sources and get back to you shortly.
### Answer Oui, vous disposez techniquement des API nécessaires pour recréer le builder visuel des conversation flows [(1) ]() . L'API Conversation Flow est maintenant disponible et vous permet de créer et gérer des conversation flows de manière programmatique [(1) ]() [(2) ]() . ## APIs disponibles Vous pouvez utiliser les endpoints suivants : - Create Conversation Flow Component : pour créer de nouveaux composants de flux [(3) ]() - Update Conversation Flow Component : pour mettre à jour des composants existants [(4) ]() - Get Conversation Flow : pour récupérer les détails d'un flux spécifique [(5) ]() ## Structure des données Les APIs vous permettent de définir : - Les nodes (nœuds de conversation) [(3) ]() [(5) ]() - Les edges (transitions entre nœuds) [(5) ]() - Les tools (fonctions personnalisées) [(3) ]() [(5) ]() - Les positions d'affichage (
begin_tag_display_position
,
display_position
pour les notes) - Les notes visuelles sur le canvas ## Exemple de structure
Copy code
javascript
const conversationFlowComponentResponse = await client.conversationFlowComponent.create({
  name: 'Customer Information Collector',
  nodes: [
    {
      id: 'collect_info',
      instruction: {
        text: 'Ask the customer for their name and contact information.',
        type: 'prompt',
      },
      type: 'conversation',
    },
  ],
}) ;
[(3) ]() Cependant, selon les discussions Discord, ces définitions de flux sont gérées via le Retell SDK ou les endpoints REST, et non via l'interface MCP de Claude [(2) ]() . Vous devrez donc construire votre propre interface visuelle en utilisant ces APIs pour recréer l'expérience du dashboard.
​ To learn more, see the sources I considered: [[1] Platform Changelogs | Retell AI](https://www.retellai.com/changelog) [[2] Retell MCP Server: Conversational Flow API](https://discord.com/channels/1186424376300679209/1400361046895493283) [[3] Create Conversation Flow Component](https://docs.retellai.com/api-references/create-conversation-flow-component) [[4] Update Conversation Flow Component](https://docs.retellai.com/api-references/update-conversation-flow-component) [[5] Get Conversation Flow](https://docs.retellai.com/api-references/get-conversation-flow) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
s
@AI Evy que dois je savoir avant de passer de llm (response_engine classic) a un conversation flow ? Est ce que au niveau architecture cela se ressemble ? Un llm est utilise par un agent tout comme un conversation flow est utilise par un agent?
a
Thanks for the follow-up, @so16. I'll get back to you soon.
### Answer Oui, au niveau architecture, c'est similaire : un agent Retell AI utilise soit un LLM (response engine classique) soit un Conversation Flow comme moteur de réponse [(1) ]() [(2) ]() . ## Points clés à connaître avant la migration Architecture similaire Les deux approches servent de response engine pour un agent. Un agent peut être configuré avec soit un LLM classique (Single/Multi Prompt) soit un Conversation Flow [(3) ]() [(4) ]() . Différences principales Le Conversation Flow utilise une structure de nœuds (
nodes
) avec des instructions et des transitions (
edges
) , contrairement au LLM classique qui utilise des prompts textuels [(1) ]() . Chaque nœud contient une instruction de type prompt :
Copy code
javascript
{
  id: 'start',
  instruction: { text: 'Greet the customer and ask how you can help them.', type: 'prompt' },
  type: 'conversation',
}
Flex Mode : pont entre les deux approches Le Flex Mode compile tout le Conversation Flow en un seul prompt structuré au runtime, combinant la clarté visuelle du flow avec la flexibilité d'un agent Single Prompt [(4) ]() . Cependant, le Flex Mode peut augmenter significativement les coûts LLM car toutes les instructions de nœuds sont compilées dans un seul prompt . Configuration commune Les deux utilisent les mêmes paramètres comme
model_choice
,
model_temperature
,
tools
, et
knowledge_base_ids
[(1) ]() [(2) ]() . Recommandation Pour les tâches complexes nécessitant une logique métier claire et visuelle, utilisez Conversation Flow. Pour plus de flexibilité conversationnelle, considérez le Flex Mode ou restez avec un LLM classique [(3) ]() [(4) ]() .
​ To learn more, see the sources I considered: [[1] Create Conversation Flow](https://docs.retellai.com/api-references/create-conversation-flow) [[2] Update Conversation Flow](https://docs.retellai.com/api-references/update-conversation-flow) [[3] Prompt Engineering Guide](https://docs.retellai.com/build/prompt-engineering-guide) [[4] Flex Mode: dynamic conversation flow execution](https://docs.retellai.com/build/conversation-flow/flex-mode) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
s
@AI Evy comment un agent lors de sa creation, utilise une conversation flow ou un llm (response e gine)
a
Thanks for the follow-up, @so16. I'll get back to you soon.
### Answer Lors de la création d'un agent, vous spécifiez le
response_engine
qui détermine s'il utilise un LLM classique ou un Conversation Flow [(1) ]() . ## Structure du response_engine Le champ
response_engine
dans la configuration de l'agent peut avoir plusieurs types : *Pour un LLM classique (Retell LLM) * :
Copy code
javascript
{
  "type": "retell-llm",
  "llm_id": "llm_234sdertfsdsfsdf",
  "version": 0
}
Pour un Conversation Flow : Le
response_engine
référence un
conversation_flow_id
existant [(2) ]() . Un Conversation Flow est une ressource autonome identifiée par son
conversation_flow_id
qu'un agent référence via son
response_engine
. ## Création d'un agent avec Conversation Flow Vous devez d'abord créer le Conversation Flow, puis l'attacher à l'agent :
Copy code
javascript
const conversationFlowResponse = await client.conversationFlow.create({
  model_choice: { model: 'gpt-4.1', type: 'cascading' },
  nodes: [
    {
      id: 'start',
      instruction: { text: 'Greet the customer and ask how you can help them.', type: 'prompt' },
      type: 'conversation',
    },
  ],
  start_speaker: 'agent',
}) ;
[(3) ]() Ensuite, vous créez ou mettez à jour l'agent en référençant le
conversation_flow_id
dans le
response_engine
[(2) ]() . ## Réutilisation Le même Conversation Flow peut être lié à plusieurs agents, ce qui permet de partager un seul flux entre, par exemple, un agent de staging et un agent de production .
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
​ To learn more, see the sources I considered: [[1] Get Voice Agent](https://docs.retellai.com/api-references/get-agent) [[2] Conversation Flow Overview](https://docs.retellai.com/build/conversation-flow/overview) [[3] Create Conversation Flow](https://docs.retellai.com/api-references/create-conversation-flow) ​
s
@AI Evy est ce que conversation_flow_component est oblige d'etre utilise ? Ou bien un conversation_flow peut etre definis sans components ? Ou bien obligatoirement avec compinent .
a
Thanks for the follow-up, @so16. I'll get back to you soon.
### Answer Non, les
conversation_flow_component
ne sont pas obligatoires [(1) ]() . Un Conversation Flow peut être défini sans components . ## Components optionnels Dans la structure d'un Conversation Flow, le champ
components
est marqué comme nullable (
object[] | null
) , ce qui signifie qu'il est optionnel . Vous pouvez créer un Conversation Flow avec uniquement des
nodes
directement :
Copy code
javascript
const conversationFlowResponse = await client.conversationFlow.create({
  model_choice: { model: 'gpt-4.1', type: 'cascading' },
  nodes: [
    {
      id: 'start',
      instruction: { text: 'Greet the customer and ask how you can help them.', type: 'prompt' },
      type: 'conversation',
    },
  ],
  start_speaker: 'agent',
}) ;
## Utilité des Components Les Components sont des mini-flows réutilisables qui permettent de packager des parties de conversation pour les réutiliser à travers plusieurs agents et flows [(2) ]() . Ils sont utiles pour : - Réutilisation : construire une fois, utiliser dans plusieurs agents - Consistance : garder un comportement uniforme - Maintenance : mettre à jour un Component partagé pour améliorer tous les agents qui l'utilisent Il existe deux types de Components : Library Components (partagés au niveau du compte) et Agent Components (locaux à un agent spécifique) . Vous pouvez donc créer des Conversation Flows simples sans Components, ou utiliser des Components pour structurer des flows plus complexes selon vos besoins [(2) ]() [(1) ]() .
​ To learn more, see the sources I considered: [[1] Create Conversation Flow](https://docs.retellai.com/api-references/create-conversation-flow) [[2] Reusable components for conversation flow agents](https://docs.retellai.com/build/conversation-flow/components) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
s
@AI Evy comment definir les node settings dans l'api ? Et comment voir quels sont les settings par type de node ?
a
Thanks for the follow-up, @so16. I'll get back to you soon.
### Answer ## Définition des node settings via l'API Les node settings se définissent directement dans la structure de chaque nœud lors de la création du Conversation Flow [(1) ]() . Chaque type de nœud possède ses propres attributs spécifiques. ## Settings par type de nœud ### Conversation Node Les settings disponibles incluent [(2) ]() : - Skip Response : quand activé, la transition n'aura qu'une seule edge que vous pouvez connecter, et quand l'agent a fini de parler, il transitionnera vers le nœud suivant via cette edge spécifique - Knowledge Base : configure des knowledge bases au niveau du nœud pour combiner des connaissances spécifiques au sujet avec la knowledge base au niveau de l'agent - Global Node : permet de rendre le nœud accessible globalement - Block Interruptions : quand activé, l'agent ne sera pas interrompu par l'utilisateur pendant qu'il parle - LLM : choisir un modèle différent pour ce nœud particulier, qui sera utilisé pour la génération de réponses - Fine-tuning Examples : permet d'affiner la réponse de conversation et la transition ### Subagent Node Les settings disponibles incluent [(3) ]() : - Tools : attache les tools/functions que ce subagent peut utiliser pendant la conversation - Skip Response : même comportement que pour le Conversation Node - Knowledge Base : même comportement que pour le Conversation Node - Global Node : même comportement que pour le Conversation Node - Block Interruptions : même comportement que pour le Conversation Node - LLM : choisir un modèle différent pour ce nœud particulier, utilisé pour la génération de réponses, la sélection de tool/func
tion, et la génération d'arguments de tool/function - Fine-tuning Examples : même comportement que pour le Conversation Node ## Exemple de structure dans l'API
Copy code
javascript
const conversationFlowComponentResponse = await client.conversationFlowComponent.create({
  name: 'Customer Information Collector',
  nodes: [
    {
      id: 'collect_info',
      instruction: {
        text: 'Ask the customer for their name and contact information.',
        type: 'prompt',
      },
      type: 'conversation',
    },
  ],
}) ;
[(1) ]() ## Types de nœuds disponibles Les types de nœuds incluent [(4) ]() : - Conversation Node : dialogue pur avec l'utilisateur sans appel de tools - Subagent Node : dialogue où l'agent peut aussi appeler des tools/functions basés sur le contexte - Function Node : exécute un seul tool/function de manière déterministe à l'entrée du nœud - Logic Split Node : évalue des conditions et branche le flux immédiatement à l'entrée - End Node : termine l'appel Pour voir tous les settings disponibles pour chaque type de nœud, consultez la documentation spécifique de chaque type de nœud dans la section "Node Settings" [(2) ]() [(3) ]() .
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
s
@AI Evy comment me conseille tu d"ecrire le prompt pour une conversation flow: est ce que mon prompt general doit tout explique le flow y compris les fonctions definition, condition etc, et ensuite me repeter dans chacune des nodes, ou bien donner un flow generak dans le prompt et lrecisement sur le node dans celles ci
a
Thanks for the follow-up, @so16. I'll get back to you soon.
### Answer ## Stratégie recommandée pour les prompts Pour un Conversation Flow, vous devez séparer les responsabilités entre le prompt global et les instructions de nœud [(1) ]() [(2) ]() . ### Prompt Global (global_prompt) Le prompt global doit contenir les éléments qui s'appliquent à toute la conversation [(1) ]() [(3) ]() : - L'identité de l'agent et son rôle général [(1) ]() - Les guardrails de style (ton, concision, empathie) - Les guidelines de réponse générales (format de dates, confirmation de compréhension) Exemple de structure recommandée :
Copy code
## Identity
You are a friendly AI assistant for [Company Name].
Your role is to [specific purpose].

## Style Guardrails
Be concise: Keep responses under 2 sentences unless explaining complex topics.
Be conversational: Use natural language, contractions, and acknowledge what the caller says.
Be empathetic: Show understanding for the caller's situation.

## Response Guidelines
Return dates in spoken form: Say "January fifteenth" not "1/15".
Ask one question at a time: Avoid overwhelming the caller with multiple questions.
### Instructions de Nœud Chaque nœud doit contenir des instructions spécifiques à cette étape [(2) ]() : - La tâche précise du nœud - Les informations à collecter à cette étape - Le comportement spécifique attendu Ne répétez PAS les guardrails globaux dans chaque nœud [(1) ]() [(2) ]() . ### Définition des Fonctions et Conditions Les *fonctions (tools) * se définissent au niveau du Conversation Flow ou du nœud, pas dans le prompt [(3) ]() . Les conditions de transition se définissent dans les
edges
de chaque nœud :
Copy code
javascript
{
  id: 'start',
  type: 'conversation',
  instruction: {
    type: 'prompt',
    text: 'Greet the customer and ask how you can help them.'
  },
  edges: [
    {
      id: 'edge_1',
      transition_condition: {
        type: 'prompt',
        prompt: 'Customer wants to book appointment'
      },
      destination_node_id: 'book_appointment'
    }
  ]
}
### Pourquoi cette séparation ? Chaque nœud a son propre prompt focalisé, ce qui permet au LLM de traiter des instructions plus claires et spécifiques [(2) ]() . Cette approche réduit les hallucinations et améliore la fiabilité [(4) ]() . **
​ To learn more, see the sources I considered: [[1] Prompt Engineering Guide](https://docs.retellai.com/build/prompt-engineering-guide) [[2] Node Overview](https://docs.retellai.com/build/conversation-flow/node) [[3] Create Conversation Flow](https://docs.retellai.com/api-references/create-conversation-flow) [[4] Address Metric Issues](https://docs.retellai.com/ai-qa/address-metric-issues) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.