This example walks through a complete FreshDesk setup, from install to a live call, so you can see how every article in this section fits together. Use it as a model for any vendor.
| Item | Detail |
|---|---|
| Goal | The agent identifies the caller, logs their issue and reads back a ticket number |
| Path | Vendor tool. FreshDesk is already in the Tool Catalog (Installing a Vendor Tool) |
| Connection | One FreshDesk connection for this customer |
| Tools installed | GetContactById, CreateContact, CreateTicket, AddNoteToTicket |
| Install variables | baseUrl: this customer's FreshDesk domain, entered once per tool at install time |
| Attached to | The customer-service agent (Attaching Tools to Your Agent) |
Tool calls are shown as calls ToolName. The caller doesn't hear them.
Caller: Hi, my office internet has been dropping all morning.
Agent: I'm sorry about that. Can I take your name and email so I can pull up your account?
Caller: Maria Santos, m-santos at northgate dot com.
Agent: That's M, dash, S, A, N, T, O, S, at northgate dot com. Is that correct?
Caller: Yes.
calls GetContactById
Agent: Thanks, Maria, I have you here. I'll log this as "intermittent internet dropouts since this morning". Does that cover it?
Caller: Yes, that's it.
calls CreateTicket
Agent: That's ticket four-four-seven-one. A technician will call you within the hour.
| Pattern step | What the agent does |
|---|---|
| 1. Identify | Collects the caller's name and email before calling any tool, as the prompt instructs. |
| 2. Confirm | Spells the email back and confirms the issue description before acting on either. |
| 3. Act | Calls GetContactById to look the caller up instead of guessing, then calls CreateTicket only after the description is confirmed. |
| 4. Report back | Reads the ticket number digit by digit and sets a clear expectation for what happens next. |
CreateContact: used if the lookup finds no match, so a new caller can still get a ticket. Not triggered in this call.AddNoteToTicket: leaves extra context for the technician on an existing ticket. Not triggered in this call.baseUrl.