Example Conversations
Three real walkthroughs showing how Claude chains MCP tools end-to-end inside an actual conversation. Use them as a reference for what to ask and how the LLM responds.
Scenario 1: Build a sales agent from scratch and test it
Creates the assistant, sets up a lead-capture trigger with a webhook, and runs an end-to-end test using create_session + send_message.
Create an assistant "Bia: XYZ Store Sales" with an SDR prompt for a clothing store, in Portuguese, temperature 0.6. Then add a trigger that captures name, email, and phone when the customer wants to buy and POSTs them to https://api.lojaxyz.com/leads with header Authorization: Bearer SECRET_TOKEN.
Three steps: assistant, trigger, webhook action.
name = "Bia: XYZ Store Sales" prompt = "You are Bia, the XYZ Store SDR. Qualify the lead, understand the need, and route to closing." language = "brazil-portuguese" temperature = 0.6
assistantId = 87 name = "captureLead" description = "Collects name, email, and phone when the customer shows purchase intent." parametersJson = { "type": "object", "properties": { "name": { "type": "string", "description": "Customer full name" }, "email": { "type": "string", "description": "Customer email" }, "phone": { "type": "string", "description": "Phone with area code" } }, "required": ["name", "email", "phone"] }
assistantId = 87 triggerId = 153 type = "WEBHOOK" actionJson = { "url": "https://api.lojaxyz.com/leads", "method": "POST", "body": "{\"name\":\"$name\",\"email\":\"$email\",\"phone\":\"$phone\"}", "headers": [{ "key": "Authorization", "value": "Bearer SECRET_TOKEN" }] }
Done. Assistant 87, trigger 153, webhook configured. Want to run a test?
Yes. Simulate a customer who wants to buy a white M shirt: "Hi, I want to buy a white M shirt. My name is John Silva, john@email.com, 11999990000".
assistant_id = 87
session = "test_8a3f" message = "Hi, I want to buy a white M shirt. My name is John Silva, john@email.com, 11999990000"
Bia confirmed the request and the captureLead trigger fired. The webhook was called successfully (HTTP 200). To see the full transcript I can run get_session("test_8a3f").
Scenario 2: Feegow appointment with parameter references
Shows how to reference trigger parameters inside actionJson, and how to chain two Feegow actions to resolve paciente_id from a CPF.
On assistant 42 (clinic), I want a scheduleAppointment trigger that collects the patient CPF, professional ID, procedure ID, date (YYYY-MM-DD) and time (HH:MM), and creates the appointment in Feegow.
I'll create the trigger with the 5 parameters and the FEEGOW APPOINTMENT_CREATE action. Remember that inside actionJson the field values are trigger parameter names, not placeholders.
assistantId = 42 name = "scheduleAppointment" description = "Creates a Feegow appointment after collecting CPF, professional, procedure, date, and time." parametersJson = { "type": "object", "properties": { "patientCPF": { "type": "string", "description": "Patient CPF, digits only" }, "professionalId": { "type": "number", "description": "Feegow professional ID" }, "procedureId": { "type": "number", "description": "Feegow procedure ID" }, "date": { "type": "string", "description": "Date in YYYY-MM-DD format" }, "time": { "type": "string", "description": "Time in HH:MM format" } }, "required": ["patientCPF", "professionalId", "procedureId", "date", "time"] }
assistantId = 42 triggerId = 211 type = "FEEGOW" actionJson = { "type": "APPOINTMENT_CREATE", "data": { "paciente_id": "patientCPF", "profissional_id": "professionalId", "procedimento_id": "procedureId", "data": "date", "horario": "time", "local_id": 1 } }
local_idis hard-coded as1. If the clinic has multiple units, addunitIdto the trigger parameters and replace it with"local_id":"unitId".- Feegow requires a numeric
paciente_id, not a CPF. The right pattern is to add aFEEGOW PATIENT_SEARCHaction before this one (it takescpfand returns the ID) so the LLM chains them. Want me to add it?
Yes, add the PATIENT_SEARCH first.
assistantId = 42 triggerId = 211 type = "FEEGOW" actionJson = { "type": "PATIENT_SEARCH", "data": { "paciente_cpf": "patientCPF", "photo": false } }
Trigger 211 now has 2 actions executed in order: first PATIENT_SEARCH resolves paciente_id from the CPF, then APPOINTMENT_CREATE uses the returned ID.
Scenario 3: Debug a production conversation
Walks through a full incident cycle: find the problematic session using the history tools, identify the root cause, fix the assistant prompt, and validate with a test.
I got a complaint that assistant 42 sent a wrong link to a customer this afternoon. Find the session and tell me what happened.
I'll list today's sessions for assistant 42 and search for the link.
assistantId = 42 perPage = 20
assistantId = 42 perPage = 50 // match: link "lojaxyz.com/promocao-velha" // session: whatsapp:5511988887777
session = "whatsapp:5511988887777"
The flow: the customer asked about the Black Friday deal and the assistant replied citing last year's promo URL. Looking at the assistant config:
id = 42
The prompt has a hard-coded line: "Our current promo is at https://lojaxyz.com/promocao-velha". That's what needs to go.
Drop that line from the prompt and add an instruction to always look up active promos in the knowledge base.
id = 42 prompt = "...original prompt without the hard-coded URL, now ending with: 'For any question about promotions, look it up in the knowledge base: never quote URLs from memory.'"
Want me to run a test now to confirm it'll fetch from the KB instead of repeating the stale link?
Run it.
assistant_id = 42
session = "test_re9c" message = "Hi, what's your Black Friday promo?"
Reply: "Let me check the current promo...": the assistant fired the knowledge-base lookup and returned the correct link. Bug fixed.