Integrations: CRM, calendars, custom APIs, MCP, connecting Claude and ChatGPT
# Claude and ChatGPT
Connect Claude or ChatGPT to Voice Logica once, and you can run the platform from the chat: build and test an agent, change its prompt or knowledge, read calls, start a campaign, set up telephony - including an on-premise PBX. This is the reverse of an integration. Voice Logica does not call Claude; **Claude calls Voice Logica** through our MCP server, signed in as you. ## Connect your assistant [Section titled “Connect your assistant”](#connect-your-assistant) Sidebar - **Integrations - AI Assistants**. Pick **Claude** or **ChatGPT** and click **Connect**. The dialog shows three steps, the server URL with **Copy URL**, an **Open Claude** / **Open ChatGPT** button and, for ChatGPT, **Download plugin**. Server URL:
```text
https://api.voicelogica.ai/api/v1/mcp
```
Direct links, same as the app: * **Claude:** [Add to Claude](https://claude.ai/new?modal=add-custom-connector\&connectorName=Voice+Logica\&connectorUrl=https%3A%2F%2Fapi.voicelogica.ai%2Fapi%2Fv1%2Fmcp#customize/connectors?q=voice+logica) - opens **Add custom connector**. * **ChatGPT:** [New plugin in ChatGPT](https://chatgpt.com/plugins#settings/Connectors?create-connector=true\&redirectAfter=%2Fplugins) - opens the **New Plugin** window. Turn on **Developer mode** first (step 1 below). Upload [the Voice Logica plugin](/downloads/voice-logica-plugin.zip) there, so you do not type the server URL, or click **Create MCP App** and paste it. - Claude 1. **Open Claude** from the dialog, or use [Add to Claude](https://claude.ai/new?modal=add-custom-connector\&connectorName=Voice+Logica\&connectorUrl=https%3A%2F%2Fapi.voicelogica.ai%2Fapi%2Fv1%2Fmcp#customize/connectors?q=voice+logica). Both open **Add custom connector** with the name and URL already filled. Doing it by hand: in Claude open **Customize - Connectors** (also under your name - **Settings - Connectors**), click **+ Add**, then **Add custom connector**. 2. Name it **Voice Logica**, paste the server URL, click **Continue**. If the boxes are empty, copy the URL from here:
```text
https://api.voicelogica.ai/api/v1/mcp
```
3. Sign in with your Voice Logica account when Claude asks, and allow access. 4. Start a new chat and ask: *“Which Voice Logica agents do I have?”* Works in Claude on the web, desktop and mobile once the connector is added to your account. - ChatGPT 1. In ChatGPT open **Settings - Security and login** and turn on **Developer mode** (under *Developer mode*, near the bottom). 2. Open **[New plugin in ChatGPT](https://chatgpt.com/plugins#settings/Connectors?create-connector=true\&redirectAfter=%2Fplugins)** (or **Plugins**, then **+** at the top right). Pick one: * **Upload plugin** - [download the Voice Logica plugin](/downloads/voice-logica-plugin.zip) (.zip) and drop it in the window, then **Add plugin**. It brings the server URL and our skills, so ChatGPT already knows how to work with your agents. * **Create custom MCP server** (in the window: **Create MCP App**) - name it **Voice Logica**, keep **Connection** on **Server URL** and paste the server URL, keep **Authentication** on **OAuth**, tick **I understand and want to continue**, then **Create**. ChatGPT cannot fill the URL in from a link, so copy it from here:
```text
https://api.voicelogica.ai/api/v1/mcp
```
3. Sign in with your Voice Logica account when ChatGPT asks, and allow access. 4. Start a new chat and ask: *“Which Voice Logica agents do I have?”* If it does not use Voice Logica, click **+** in the message box and turn on **Voice Logica**. Developer mode is on every ChatGPT plan, Free included. Workspace (Business, Enterprise) admins may have to allow custom plugins first. - Microsoft Copilot Microsoft 365 Copilot and Teams reach a custom MCP server through an agent you build in Copilot Studio. You need a Microsoft 365 Copilot or Copilot Studio license. 1. Open **[Copilot Studio](https://copilotstudio.microsoft.com/)** (or **Integrations - AI Assistants - Microsoft Copilot - Open Copilot Studio** in the app). Create an agent or open one you have. 2. Go to **Tools - Add a tool - New tool - Model Context Protocol**. Name it **Voice Logica**, add a short description (Copilot reads it to decide when to use the tool), and paste the server URL:
```text
https://api.voicelogica.ai/api/v1/mcp
```
3. Set **Authentication** to **OAuth 2.0** and pick **Dynamic discovery**, then **Create**. Sign in with your Voice Logica account when asked, and add the tool to the agent. 4. **Publish** the agent to **Teams and Microsoft 365 Copilot**. Open it in Copilot and ask: *“Which Voice Logica agents do I have?”* Microsoft Copilot cannot open with a prompt already filled in. **Edit with Microsoft Copilot** in Voice Logica opens Copilot and copies the prompt, so you paste it. - Cursor, VS Code, Claude Code One click, then sign in with your Voice Logica account when the app asks: * **Cursor:** [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=Voice%20Logica\&config=eyJ1cmwiOiJodHRwczovL2FwaS52b2ljZWxvZ2ljYS5haS9hcGkvdjEvbWNwIn0=) (or **Integrations - AI Assistants - Cursor - Add to Cursor** in the app). * **VS Code (GitHub Copilot):** [Install in VS Code](https://vscode.dev/redirect/mcp/install?name=voice-logica\&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.voicelogica.ai%2Fapi%2Fv1%2Fmcp%22%7D). Use it from Copilot Chat in **Agent** mode (or **Integrations - AI Assistants - GitHub Copilot - Add to VS Code** in the app). **Edit with GitHub Copilot** in the app opens Copilot Chat with the prompt filled in. * **Claude Code:** run this, then type `/mcp` in Claude Code and pick **voice-logica** to sign in.
```bash
claude mcp add --transport http voice-logica https://api.voicelogica.ai/api/v1/mcp
```
* **Windsurf:** add this to `~/.codeium/windsurf/mcp_config.json`, then refresh the MCP list.
```json
{ "mcpServers": { "voice-logica": { "serverUrl": "https://api.voicelogica.ai/api/v1/mcp" } } }
```
Any other app that supports remote MCP servers with OAuth connects with the server URL above. **No Voice Logica account yet?** Connecting creates it. In the window that opens, choose **Continue with email** (or Google / Microsoft), enter the 6-digit code from your inbox, then your business name and website, and click **Create account & connect**. The window closes, you are back in the chat already connected, and your first agent is being built from your website. Ask *“show me my agent”*: it answers “building” for about a minute, then gives you ways to hear it. Back in Voice Logica the tile turns **Connected**. Cursor, GitHub Copilot, Microsoft Copilot and Perplexity are on the same tab and work the same way. ## What you can ask [Section titled “What you can ask”](#what-you-can-ask) Plain requests work. A few that do real work: * *“Build an agent that answers for my dental clinic, in Greek, and books appointments.”* * *“Call me so I can hear it”* - it rings your phone with the agent. Or *“let me test it in the browser”* for a link. * *“Make the greeting shorter and stop it from giving prices.”* * *“Add our website to its knowledge.”* * *“Show me yesterday’s calls that ended in a transfer, with the reason.”* * *“Start a campaign calling this list tomorrow from 10:00 to 14:00.”* * *“Connect my Panasonic PBX.”* / *“Add +30 210 123 4560 to 4569 to our trunk and send them to the agent.”* * *“During calls, text the caller our booking link.”* * *“Set up a phone for and email her the instructions.”* * *“We want to go live: which plan fits us?”* * *“How do I connect my carrier?”* - it answers with the step-by-step guide and offers to do each step for you. The assistant asks before it does anything that changes live behaviour or costs money, and tells you what changed. Not sure what to ask? In Claude, click **+** and open **Voice Logica** for ready-made starters, or ask *“What can you do?”*. The full list, by area: [What you can ask](/integrations/what-you-can-ask/). Under the tiles, **Choose what it uses by default** sets the **SIP trunk**, **AI agent**, **SMS sender** and **Calendar** used when a request does not name one. ## What you see in the chat [Section titled “What you see in the chat”](#what-you-see-in-the-chat) In Claude and ChatGPT some answers come as a small card instead of text: * **Your agent** - its name, language and greeting, with buttons to talk to it in the browser, have it call your phone, or improve it. * **Test call** - the call’s status updates by itself while it rings and runs, then shows the summary and the transcript, with a link to the recording. * **Plans** - one card per plan with the price and what is included. **Choose** asks for that plan in the chat; you add your card on a secure Stripe page, never in the chat. Apps that do not show cards (for example Cursor) get the same information as text. ## Go live from the chat [Section titled “Go live from the chat”](#go-live-from-the-chat) 1 **Pick a plan.** *“We want to go live.”* You get the plans; choose one. 2 **Add a card.** If there is no card on file you get a secure Stripe link. Add the card there and say *“done”*; the plan is bought. 3 **Get a line.** Companies in Greece can order their [free number](/telephony/voice-logica-numbers/). Otherwise connect your [PBX](/telephony/connect-your-pbx/) or your [carrier](/telephony/your-own-carrier/). The free number is only ordered after you confirm: the assistant first tells you whether it is available and which agent will answer it. ## Numbers, routes and team phones [Section titled “Numbers, routes and team phones”](#numbers-routes-and-team-phones) * **Numbers:** add numbers to a trunk (a list or a range), move a number to another route, stop using one. * **Inbound routes:** which agent, person or group answers each number, with different destinations after hours and on holidays. * **Outbound routes:** which trunk and caller ID carry calls to which numbers. * **Team phones:** invite a person, turn on the softphone, Windows app or iOS app for them (buying a seat if none is free), and email or text them the setup steps. Changes only touch what you name. Deleting a route or number is always confirmed first. ## Connect your PBX from Claude [Section titled “Connect your PBX from Claude”](#connect-your-pbx-from-claude) Most office phone systems connect by registering a trunk out to Voice Logica: no port forwarding, no public IP. 1 **Ask.** *“Connect my Panasonic PBX to my agent.”* It creates the connection and gives you the server, port, username and password. 2 **Enter the values.** It walks you through the steps in your PBX’s own menus, one at a time. The full list per make is on [Connect your PBX](/telephony/connect-your-pbx/). 3 **Check.** Say *“done”*. It checks whether the PBX registered, and if not, tells you why (wrong password, nothing arrived yet) and what to check. ### A PBX that cannot register a trunk [Section titled “A PBX that cannot register a trunk”](#a-pbx-that-cannot-register-a-trunk) For a phone system on the office network that can only be reached as an extension. The same flow as the [Edge device](/telephony/edge-device/) page, driven from the chat. 1 **Ask.** *“Connect my PBX. It’s on the office network, the IT PC runs Windows.”* Say Linux if the machine next to the PBX is Linux or a Raspberry Pi. 2 **Run the installer.** You get a download link for a Windows installer made for your company (valid 4 hours), or a one-line Linux command with the token inside. Run it on an always-on machine on the same network as the PBX. The assistant also lists the firewall needs: outbound TCP 443 and UDP 51820. Using the virtual machine instead? Start it and read the assistant the **Claim code** from its console screen. 3 **Device online.** Tell it when the installer finished. It checks the device: online, tunnel up, and any PBX it found on the LAN. 4 **Give the PBX details.** The PBX IP (for example `192.168.1.10`), its SIP port (5060 unless your PBX uses another, such as 5059 on Alcatel OXO) and the extension username and password the PBX created for Voice Logica. Because the address is private, the assistant creates the trunk **through your edge device** automatically. With several devices it picks the one whose network contains the PBX, and asks you if that is not clear. The trunk registers, and the assistant confirms. Last step: *“Send calls on that line to my agent”* - then dial it from a real phone and ask it to show you the call. ## How the tools are organised [Section titled “How the tools are organised”](#how-the-tools-are-organised) This part is for IT teams and developers; you never need tool names to use the assistant. The everyday work has its own tools: agents and their prompt and settings, test calls, calls and statistics, knowledge, workflows, campaigns, trunks and `connect_pbx`, plans, support tickets and tasks. The rest of each area sits behind two tools: `_query` reads, `_execute` changes. Called without an action, `_query` lists every action with its input, so the assistant looks it up when it needs it. | Area | What is in it | | ------------------------------------------ | --------------------------------------------------------------------------------------------------------------- | | `telephony_*` | Phone numbers, inbound and outbound routes, sending a team member their device setup | | `pbx_*` | Whether a PBX registered, SIP logs of a call or a trunk, edge devices and their installer | | `team_*` | Members, invitations, phone seats per device, buying seats | | `query_user_action`, `execute_user_action` | A member’s status and access: change name, phone or access, disable or re-enable, remove, password reset | | `messages_*` | SMS, Viber and email, mailboxes, SMS sender IDs | | `calendar_*` | Calendars and events | | `billing_*` | Subscription, add-ons, card on file, cancel or resume, VAT number | | `tickets_*` | Your support tickets: list, read, reply | | `knowledge_*` | Knowledge housekeeping and the questions callers asked that the agent could not answer | | `leads_*`, `campaigns_*` | Campaign leads (including .xlsx/.csv import), scheduled calls, one campaign’s details, pause, resume, test call | | `scenarios_*`, `versions_*` | Test scenarios and suites, saved and published versions of agents and workflows | | `eshop_*` | The e-shop product catalogue the agent answers from | Each action runs with the same permission check as the tool it replaced, and a chat opened before a change still works with the tool names it already has. ## Security [Section titled “Security”](#security) * **Your company only.** Every action runs on the company you are signed in to. If you belong to several, ask it to switch - it cannot mix them. * **Your permissions.** The assistant can do what your user role can do in the app, nothing more. Telephony and edge-device setup need an admin on the company. * **You sign in, not a key.** Access is an OAuth sign-in to your account. No API key is pasted into the chat. * **Secrets stay out of the chat.** Passwords, API keys and tokens saved in your settings (a workflow’s Authorization header, a webhook token, a PBX password) show as `[hidden]`. When the assistant edits that setting, the stored value is kept. * **Turn it off.** On **Integrations - AI Assistants**, **Disconnect** on the tile (then **Disable**) blocks that assistant at once; **Re-enable** restores it. Removing the connector in Claude or ChatGPT also ends it. Passwords you give it (a SIP extension, for example) are stored on the trunk like any trunk you create in the app. Before connecting, you or your IT team can read every tool the assistant gets, with what each one does and whether it only reads or also changes data, at [api.voicelogica.ai/.well-known/mcp/server-card.json](https://api.voicelogica.ai/.well-known/mcp/server-card.json). No sign-in needed. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Edge device - the same PBX setup, from the app.→](/telephony/edge-device/)[Your own carrier - carriers and public PBXs.→](/telephony/your-own-carrier/)[AI Assistants - the other direction: your agent calling an MCP server during a call.→](/integrations/mcp-settings/)
# Grok and Grok Bot
Connect Grok to Voice Logica and ask it about your calls and your team in plain words: what callers wanted, which calls need a callback, how the agent did this week, who on the team has a phone set up. It can also make the changes for you: invite a colleague, fix the agent’s greeting, call a customer back. Like [Claude and ChatGPT](/integrations/claude-chatgpt/), Grok reaches Voice Logica through our MCP server, with your permissions and only on your company. Server URL:
```text
https://api.voicelogica.ai/api/v1/mcp
```
## Grok or Grok Bot [Section titled “Grok or Grok Bot”](#grok-or-grok-bot) | | **Grok** (grok.com, iOS, Android) | **Grok Bot** | | ---------- | ------------------------------------ | ----------------------------------------------------------------------------------- | | What it is | The chat assistant | A cloud agent with its own computer and memory, that keeps working between sessions | | Best for | Questions about calls, quick changes | Recurring work: a daily call review, follow-ups, weekly team reports | | Sign-in | Your Voice Logica account (OAuth) | A Voice Logica API key | ## Connect [Section titled “Connect”](#connect) * Grok 1. Open **[grok.com/connectors](https://grok.com/connectors)**, click **New Connector**, then **Custom**. 2. Name it **Voice Logica** and paste the server URL:
```text
https://api.voicelogica.ai/api/v1/mcp
```
3. Sign in with your Voice Logica account when Grok asks, and allow access. 4. Start a new chat and ask: *“Show me yesterday’s Voice Logica calls.”* The connector follows your Grok account, so it also works in the Grok iOS and Android apps. On Grok Business and Enterprise, an admin adds the connector for the organisation first. * Grok Bot Grok Bot connects with an API key, so it can keep working while you are away. 1. In Voice Logica open **Team and access - API Keys** and click **+ Api Key**. Name it `Grok Bot`. Keep **MCP** on under **API operation restrictions**, and switch off the groups you do not want it to use (for example **Billing**). Click **Create API Key** and copy the key: it is shown only once. More on [API Keys](/getting-started/api-keys/). 2. In Grok Bot open **Settings - Plugins** and add a custom connector. 3. Paste the server URL and add this header, with your key in place of `YOUR_KEY`:
```text
https://api.voicelogica.ai/api/v1/mcp
```
```text
Authorization: Bearer YOUR_KEY
```
`x-api-key: YOUR_KEY` also works. If Grok Bot offers to sign in instead, you can sign in with your Voice Logica account and skip the key. 4. Save, then ask: *“Using Voice Logica, list my agents.”* The key acts for your company with the operations you allowed. Delete it on **API Keys** to cut Grok Bot off at once. ## Your calls [Section titled “Your calls”](#your-calls) Every call your agents and your team take is recorded, transcribed and summarised in Voice Logica. Grok reads them for you: * *“What did callers want yesterday? Group them by reason.”* * *“Which calls this week ended without an answer to the caller’s question?”* * *“Show me the calls that were transferred, and why.”* * *“Find every call with +30 69x xxx xxxx and summarise what we promised.”* * *“Read me the transcript of the last call about a refund.”* * *“How many calls did we get this month, how long were they, and how many came after hours?”* * *“Call this customer back with our agent and confirm their appointment for Thursday.”* * *“Which questions did the agent not know the answer to? Add the answers to its knowledge.”* It never invents a call: it answers from your call history and gives you the call so you can open it in the app. ## Your users [Section titled “Your users”](#your-users) Your team members, their phones and their access: * *“Who is on our team, and who has not set up a phone yet?”* * *“Invite , give her the softphone and email her the setup steps.”* * *“Which calls did Nikos answer today, and which did he miss?”* * *“Disable the account of a colleague who left, and send their number to the agent.”* * *“Reset John’s password.”* Adding seats or changing who has access is asked of you first. Telephony and access changes need an admin on the company. ## Grok Bot on a schedule [Section titled “Grok Bot on a schedule”](#grok-bot-on-a-schedule) Grok Bot remembers what you ask and can repeat it. A few jobs that save time: 1 **Morning call review.** *“Every weekday at 9:00, list yesterday’s calls that need a callback, with the reason and the caller’s number.”* 2 **Missed questions.** *“Every Friday, collect the questions our agent could not answer and draft the answers for me to approve.”* 3 **Team report.** *“Every Monday, give me calls answered and missed per person last week.”* ## Security [Section titled “Security”](#security) * **Your company only.** Every request runs on the company you signed in to, or the company that owns the API key. * **Your permissions.** Grok can do what your user role, or the key, allows. Nothing more. * **Secrets stay hidden.** Passwords, tokens and keys saved in your settings show as `[hidden]`. * **Changes are confirmed.** Grok asks before anything that changes live behaviour or costs money. * **Turn it off.** Remove the connector in Grok, or delete the API key used by Grok Bot. The full list of tools Grok gets, and whether each reads or changes data: [api.voicelogica.ai/.well-known/mcp/server-card.json](https://api.voicelogica.ai/.well-known/mcp/server-card.json). ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Claude and ChatGPT - the same connection in other assistants.→](/integrations/claude-chatgpt/)[What you can ask - everything the assistant can do, by area.→](/integrations/what-you-can-ask/)[API Keys - create and limit the key for Grok Bot.→](/getting-started/api-keys/)
# Get an integration working
An integration is company-wide. Connecting HubSpot here does not make the agent use it. You still turn the tool **on** under **Skills - Tools & Workflows**, or a workflow node stays **Setup required** until the same company is connected. Sidebar - **Integrations**. Four tabs: **Connected**, **Catalogue**, **Deployable Channels**, **AI Assistants**. Day one is **Catalogue** - **Connect** / **Authorize**, then the agent tool. Page line on **Connected**: *These are the tools already connected, and what they can do.* On **Catalogue**: *Business systems and tools you can connect. Connect once here, then switch it on per agent under Agent -> Skills.*  int-connectedExpand  int-catExpand ## Why setup matters [Section titled “Why setup matters”](#why-setup-matters) Three things have to be true or the tool is decoration: 1. **Catalogue - Connect** or **Authorize** on *this* company (OAuth or credentials). 2. The agent’s matching tool card is on, with the operations you want. 3. You **Save** the agent. A workflow node for the same provider is a fourth thing: the graph, plus the same connection. ## The five tabs [Section titled “The five tabs”](#the-five-tabs) Connected Working / Not connected / Action needed / Disconnect CatalogueSTART HERE Connect or Authorize a provider Deployable Channels widgetchatmail - not CRM [Caller card](/telephony/caller-bar/) Show / Open record by itself / Primaryper integration [AI Assistants](/integrations/claude-chatgpt/) ClaudeChatGPT calling Voice Logica **Caller card** decides which integrations look callers up for the [caller bar](/telephony/caller-bar/) your team sees during a call, which one opens by itself, and which is shown first. Each person can change their own primary and auto-open in **Profile - My caller card** ([My caller card](/telephony/caller-bar/#my-caller-card)). The tab also links admins to the [Chrome extension](/telephony/chrome-extension/). **Authorize** appears on OAuth providers (HubSpot, Zoho CRM, Google Meet / Chat, Microsoft 365, Dropbox). **Connect** appears on credential / API setups (Salesforce, Guesty, Custom API, ERPs, ecommerce, couriers). After it works, the card leaves Catalogue and shows on **Connected**. [Google Workspace](/integrations/google/) also appears on **Connected** even before authorize - scopes for calendar, Drive, Sheets, and mail. Catalogue still lists Google Meet / Google Chat separately. Catalogue search shows **Search 42 Integrations…** with filters: All, CRM, ERP, E-commerce, Communication, Hospitality, Productivity, Payments, Logistics. **Deployable Channels** is how some chat / mail / WhatsApp surfaces attach. The agent’s **Channels - Website Widget** and [Telephony](/telephony/) are still the usual caller paths. ## Which path [Section titled “Which path”](#which-path) Know the caller from our CRM TURN ONHubSpot or ZohoNEEDS[HubSpot](/integrations/hubspot/) or [Zoho CRM](/integrations/zoho-crm/). Salesforce, Freshdesk, and Zendesk are on the same Catalogue tab. Owners and guests (Guesty) TURN ONGuestyNEEDSClient ID + secret. [Guesty](/integrations/guesty/). Our own ERP / shop API TURN ONCustom APINEEDSBase URL + one auth header. [Custom API](/integrations/custom-api/). Shopify / Woo and other catalogue cards use **Connect**, then that tool. Book on Google Calendar / write a Sheet TURN ONGoogle WorkspaceNEEDS[Google](/integrations/google/). Opens from **Connected** - **Connect Google**. Claude or ChatGPT to call our agents TURN ONAI AssistantsNEEDSThe other direction. [Claude and ChatGPT](/integrations/claude-chatgpt/). ## Every integration in the Catalogue [Section titled “Every integration in the Catalogue”](#every-integration-in-the-catalogue) Each integration has its own page: what to enter, the setup steps, and what the agent can do with it on a call. | Category | Integrations | | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | CRM & Helpdesk | [HubSpot](/integrations/hubspot/) · [Zoho CRM](/integrations/zoho-crm/) · [Salesforce](/integrations/crm/salesforce/) · [Freshdesk](/integrations/crm/freshdesk/) · [Zendesk](/integrations/crm/zendesk/) | | ERP | [Soft1](/integrations/erp/soft1/) · [Entersoft ONE](/integrations/erp/entersoft-one/) · [Galaxy ERP](/integrations/erp/galaxy-erp/) · [Galaxy Drugstore](/integrations/erp/galaxy-drugstore/) · [Pylon](/integrations/erp/pylon/) · [SAP](/integrations/erp/sap/) · [Megasoft](/integrations/erp/megasoft/) · [Exelixis Smart](/integrations/erp/exelixis-smart/) · [Odoo](/integrations/erp/odoo/) | | E-commerce | [WooCommerce](/integrations/eshops/woocommerce/) · [Shopify](/integrations/eshops/shopify/) · [Magento](/integrations/eshops/magento/) · [OpenCart](/integrations/eshops/opencart/) · [PrestaShop](/integrations/eshops/prestashop/) · [GonnaOrder](/integrations/eshops/gonnaorder/) · [XML feed](/integrations/eshops/xml-feed/) | | Hospitality | [Guesty](/integrations/guesty/) · [WebHotelier](/integrations/hospitality/webhotelier/) · [Hosthub](/integrations/hospitality/hosthub/) | | Communication | [Google Workspace](/integrations/google/) · [Google Meet](/integrations/communication/google-meet/) · [Google Chat](/integrations/communication/google-chat/) · [Microsoft 365](/integrations/communication/microsoft-365/) · [WhatsApp Business](/integrations/communication/whatsapp/) · [Yuboto PBX](/integrations/communication/yuboto-pbx/) | | Productivity | [Custom API](/integrations/custom-api/) · [Jira](/integrations/productivity/jira/) · [Trello](/integrations/productivity/trello/) · [ClickUp](/integrations/productivity/clickup/) · [Airtable](/integrations/productivity/airtable/) · [Dropbox](/integrations/productivity/dropbox/) · [Power BI / Looker Studio](/integrations/productivity/bi-reporting/) | | Payments & Logistics | [Viva.com](/integrations/payments-logistics/viva/) · [ACS Courier](/integrations/payments-logistics/acs-courier/) · [Speedex](/integrations/payments-logistics/speedex/) · [Geniki Taxydromiki](/integrations/payments-logistics/geniki-taxydromiki/) · [ELTA Courier](/integrations/payments-logistics/elta-courier/) · [Taxydema](/integrations/payments-logistics/taxydema/) · [BOX NOW](/integrations/payments-logistics/boxnow/) · [Skroutz Last Mile](/integrations/payments-logistics/skroutz-last-mile/) · [Bus timetable (GTFS)](/integrations/payments-logistics/gtfs/) | ## First setup - HubSpot, then one identified call [Section titled “First setup - HubSpot, then one identified call”](#first-setup---hubspot-then-one-identified-call) 1. **Integrations - Catalogue - HubSpot - Authorize** Finish the HubSpot consent screen (*Connecting your Voice Logica AI account to HubSpot*). The card should move to **Connected** with a working status. 2. **My Agents - this agent - Skills - Tools & Workflows** Turn **HubSpot** on. Enable identify-by-phone (and auto-identify on incoming) when those options appear. Pick the properties you want read. 3. **Save** the agent. Call the production DID from a number that exists on a HubSpot contact. 4. Listen for the name. If the greeting is generic - the number is not on the contact, the tool is off, or you connected HubSpot on a different company. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [HubSpot - first CRM.→](/integrations/hubspot/)[Google authorizations - calendar, Drive, Sheets, mail.→](/integrations/google/)[Claude and ChatGPT - run Voice Logica from your AI assistant.→](/integrations/claude-chatgpt/)[AI Assistants - your agent calling an MCP server.→](/integrations/mcp-settings/)
# Claude for your calls and your team
> Ask Claude or ChatGPT about your calls, customers and team members: summaries, reports, follow-ups, invitations, phones and access, from one chat.
Voice Logica records and analyses your calls and keeps your team’s phones, extensions and access in one place. With Claude (or ChatGPT, Microsoft Copilot and any other MCP assistant) connected, you do not need to open the app to use any of it. You ask, and the assistant reads your calls or changes your team settings for you. This page shows the two things people use it for most: **understanding calls** and **managing users**. To connect, see [Claude and ChatGPT](/integrations/claude-chatgpt/). For the full list by area, see [What you can ask](/integrations/what-you-can-ask/). ## Start in three steps [Section titled “Start in three steps”](#start-in-three-steps) 1 **Connect.** In the app, **Integrations - AI Assistants - Claude - Connect**, or add the connector `https://api.voicelogica.ai/api/v1/mcp` in Claude. Sign in with your Voice Logica account. 2 **Ask about your calls.** *“Summarise yesterday’s calls. Who needs a callback?”* 3 **Ask about your team.** *“Who is on our team, and which phones does each person use?”* ## Your calls [Section titled “Your calls”](#your-calls) Every call your agents answer or make, and every call your team makes on Noema, the Windows app or a desk phone, is transcribed, summarised and analysed. Claude reads the same data you see on **Calls**. ### Find a call and understand it [Section titled “Find a call and understand it”](#find-a-call-and-understand-it) * *“Open the call from +30 69… this morning. What did the customer want, and what did we promise?”* * *“Show the last call with Acme Ltd - summary and transcript.”* * *“Why did the call at 11:42 fail?”* - it reads the call’s end reason and explains what is missing (a number not routed, no agent on the line, the carrier rejected it). * *“Transcribe this recording”* (attach an audio file from another system). You get the summary first. Ask for the transcript or the recording link only when you need them. ### Reports in seconds [Section titled “Reports in seconds”](#reports-in-seconds) * *“How many calls did we get last week? How many were missed, and at what hours?”* * *“Compare this month with last month, per agent.”* * *“Which calls were transferred to a person, and why?”* * *“Which calls mentioned a complaint or a cancellation?”* * *“Which questions could the agent not answer this week?”* Statistics come as a table. Claude can filter on anything your agent’s [call results](/agent-configuration/call-results/) capture, for example *request resolved*, *transfer reason* or *call reason*. ### Customers and follow-ups [Section titled “Customers and follow-ups”](#customers-and-follow-ups) * *“What do we know about Eleni Papadopoulou - calls, emails, notes, appointments?”* The question and Claude’s answer are saved on her contact timeline, so the next colleague sees them. * *“Who needs a callback? Anything overdue?”* * *“Remind me to send Eleni the offer on Friday at 10.”* * *“Email the customer a summary of the call.”* / *“Text him the booking link.”* * *“Call Nikos and confirm his appointment for tomorrow”* - an agent makes the call and Claude shows you the result when it ends. See [Tasks](/tasks/) for how callbacks and follow-ups are created from calls. ### Turn calls into improvements [Section titled “Turn calls into improvements”](#turn-calls-into-improvements) * *“Read last week’s transferred calls and tell me what the agent should have answered itself.”* * *“Add the missing answers to its knowledge.”* * *“Make the greeting shorter and stop it from giving prices.”* Claude shows you what it will change and asks before it changes a live agent. ### Privacy requests [Section titled “Privacy requests”](#privacy-requests) * *“Export everything we hold about +30 69…”* - for a customer’s access request. * *“Erase all data about this caller.”* Their calls are anonymised and their contact, notes, messages and tasks are deleted. Claude names the person and asks you to confirm first, because it cannot be undone. Copies in a connected CRM or e-shop must be erased there. ## Your users [Section titled “Your users”](#your-users) Everything under **Team and access** and **Telephony - Users, seats and devices** can be done from the chat. Changing users needs an admin role on the company. ### Invite and set up a colleague [Section titled “Invite and set up a colleague”](#invite-and-set-up-a-colleague) * *“Invite as a member and give her the iOS app.”* * *“Set up a phone for Nikos on the Windows app and email him the instructions, in Greek.”* * *“How many free seats do we have? Buy 2 SIP seats.”* * *“Give me Nikos’s extension, SIP details and the Windows download link.”* If no seat is free, Claude tells you the cost and asks before it buys one. See [Users, seats and devices](/telephony/users-and-devices/). ### Who answers what [Section titled “Who answers what”](#who-answers-what) * *“Who is on our team? Who has not accepted the invitation yet?”* * *“Send calls on our main number to the front desk group, and to the agent after 18:00.”* * *“What were Maria’s calls yesterday?”* - calls on her extension or mobile. ### Access and accounts [Section titled “Access and accounts”](#access-and-accounts) * *“Change Giorgos’s mobile number to +30 69…”* * *“Make Anna an admin.”* / *“Revoke the invitation to .”* * *“Send Eleni a password reset.”* * *“Disable Petros’s account, he left today.”* Then *“Re-enable him”* if needed. * *“Remove Petros from the company.”* Disabling or removing a user is always confirmed first. ## During a call: say “Logica” [Section titled “During a call: say “Logica””](#during-a-call-say-logica) Claude works on calls after they happen. On a live call between you and a customer or colleague, the AI is also on the line and answers when you say **Logica** or **Λότζικα**: *“Logica, add Maria to the call”*, *“Logica, what are our Saturday hours?”*. See [Assistant during calls](/telephony/assistant-during-calls/). For the business calls on your mobile, [Noema](/telephony/noema-mobile-plan/) records and summarises them, and they show up in Claude like any other call: *“What did I agree with the supplier this morning?”* ## What Claude can and cannot do [Section titled “What Claude can and cannot do”](#what-claude-can-and-cannot-do) * **Your company only.** It works on the company you signed in to. If you belong to several, ask it to switch. * **Your role.** It can do what your user can do in the app, nothing more. Changing users needs an admin. * **It asks first.** Anything that changes a live agent, removes or disables a user, erases data or costs money is confirmed before it runs. * **No secrets in the chat.** You sign in with OAuth, not a key. Stored passwords and tokens show as `[hidden]`. * **Turn it off any time.** **Integrations - AI Assistants - Disconnect** blocks the assistant at once. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Claude and ChatGPT - connect it.→](/integrations/claude-chatgpt/)[What you can ask - every area, with requests to copy.→](/integrations/what-you-can-ask/)[Users, seats and devices - the team phone setup in the app.→](/telephony/users-and-devices/)
# Email copy address
> File your team's client emails on contact and company records: from Gmail and Outlook with the Chrome extension, or for everyone at once with a Google Workspace or Microsoft 365 rule.
Email sent or copied to your **copy address** is filed on the contact and company records it is about, with its attachments. Nothing is answered and your inboxes are never read: only what reaches the address is filed. Find it in **Emails settings → Email copy address**. There are two kinds: * **Your personal address**: `log-…+…@in.voicelogica.ai`. Emails that reach it are marked as **handled by you**. Use it for your own Bcc and your own forwarding rule. * **The company address**: `log-…@in.voicelogica.ai`. Use it for shared inboxes (a Google group such as support@) and company-wide rules; the person who handled each email is taken from From, To and Cc. Emails only between colleagues are skipped. The same email arriving several times (Bcc plus a group plus a forward) is filed once. ## Choose how emails reach it [Section titled “Choose how emails reach it”](#choose-how-emails-reach-it) | Way | Covers | Set up by | | --------------------------------------------------------- | ------------------------------------------------------- | ------------------------- | | [Chrome extension](#from-gmail-or-outlook-in-the-browser) | Emails you write in Gmail or Outlook in the browser | Each person, in 1 minute | | [Forwarding rule](#also-file-client-replies) | Client replies you receive | Each person, in 2 minutes | | [Company rule](#for-the-whole-company) | Every email to and from clients, in every app and phone | A mail admin, once | ## From Gmail or Outlook in the browser [Section titled “From Gmail or Outlook in the browser”](#from-gmail-or-outlook-in-the-browser) The [Chrome extension](/telephony/chrome-extension/) adds your personal copy address in Bcc when you write to a client: 1. Open the extension, go to **Email filing** and choose **Remind me** or **Add automatically**. Allow access to Gmail and Outlook when Chrome asks. 2. Write to a client. A chip next to **Send** shows **Filed in Voice Logica** (or **Add** in Remind mode). **×** skips one email. 3. Add people or domains you never want filed under **Never file emails to…**. It works in Gmail (any Gmail or Google Workspace account) and Outlook on the web (Microsoft 365 and outlook.com). Desktop and phone mail apps need a [company rule](#for-the-whole-company) instead. ## Also file client replies [Section titled “Also file client replies”](#also-file-client-replies) A Bcc only covers what you send. To file the replies, forward your incoming mail to your personal copy address; Voice Logica keeps only **replies to emails already filed** and **mail from your contacts**, and drops everything else unread. 1. In the extension, open **Email filing → Also file client replies** and click **Open Gmail forwarding**. Your address is copied: click **Add a forwarding address** and paste it. 2. Gmail sends a confirmation code to the address; it appears in the extension a minute later. Enter it in Gmail. 3. Click **Open the filter**, choose **Create filter**, tick **Forward it to** and pick your copy address. In Outlook: **Settings → Mail → Rules → Add new rule**, condition **From: not in my organisation** (or all messages), action **Forward to** your personal copy address. ## For the whole company [Section titled “For the whole company”](#for-the-whole-company) A mail admin can copy every client email to the **company** address once, for everyone and every app (desktop, phone, web). This needs no extension and cannot be forgotten. ### Google Workspace [Section titled “Google Workspace”](#google-workspace) 1. In the [Admin console](https://admin.google.com) go to **Apps → Google Workspace → Gmail → Routing**. 2. Under **Routing**, click **Configure** (or **Add another rule**) and give it a name, e.g. *Voice Logica copy*. 3. Under **Email messages to affect** tick **Inbound** and **Outbound**. 4. Under **For the above types of messages, do the following** choose **Modify message**, then under **Also deliver to** tick **Add more recipients**, click **Add**, and enter the company copy address. 5. Click **Save**. Changes can take up to an hour. To limit it to some people, apply the rule to an organisational unit or a group. ### Microsoft 365 / Exchange Online [Section titled “Microsoft 365 / Exchange Online”](#microsoft-365--exchange-online) 1. In the [Exchange admin center](https://admin.exchange.microsoft.com) go to **Mail flow → Rules → Add a rule → Create a new rule**. 2. Name it *Voice Logica copy – outgoing*. **Apply this rule if**: *The recipient is located* → **Outside the organization**. 3. **Do the following**: *Add recipients* → **to the Bcc box** → the company copy address. Save and enable the rule. 4. Add a second rule, *Voice Logica copy – incoming*: **Apply this rule if** *The sender is located* → **Outside the organization**, same action. Save and enable. Both rules skip mail only between colleagues, like the copy address itself.
# Google Chat
> Let your agents and workflows post lead alerts, escalations and call outcomes to your team's Google Chat spaces.
Google Chat lets the agent tell your team about a call while it happens or right after: a new lead, a complaint that needs a person, a booking request. The agent writes the message and posts it to the space you choose, so the right people see it without opening Voice Logica. Workflows can post to Chat as well. The path is **Integrations - Catalogue - Google Chat - Authorize**. One connection is shared by the whole company. Messages are posted as the Google account that authorized, into spaces that account belongs to. Then turn the **Google Chat** tool on under the agent’s **Skills - Tools & Workflows**. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A **Google Workspace** account. Personal Gmail accounts cannot use the Google Chat API. * That account must be a member of the spaces the agent should post to. Add it to the space in Google Chat first. * Optional: an incoming webhook URL created in a Chat space’s settings in Google Chat. Use it when you want to post into a space without the authorized account being a member. The rest of Google (calendar, contacts, Drive, Sheets, mail) is a separate connection. See [Google Workspace](/integrations/google/). ## What you enter [Section titled “What you enter”](#what-you-enter) After Google consent, the **Google Chat** dialog opens: Default spaceREQUIRED Where agents and workflows post when no space is named. The list shows the spaces the authorized account belongs to. Incoming webhooks Optional. **Add webhook** with a **Name** (the label the agent picks), the **Webhook URL** (must start with `https://chat.googleapis.com/`) and an optional **Space label**. On the agent’s **Google Chat** tool card: OperationsREQUIRED **Send to default space** (on by default), **Send message (pick space)** and **Send via webhook**. Allowed spaces With **Send message (pick space)**: the spaces you name for this agent. The agent can also post to another space the account belongs to when your instructions name it. Allowed webhooks With **Send via webhook**: the webhook names this agent may use. Only these work. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Google Chat - Authorize** Sign in with the Google Workspace account that is a member of your team spaces and accept the consent screen. The **Google Chat** dialog opens when you return. 2. **Default space** Pick the space for alerts, for example your sales or front-desk space. 3. **Send a test message** Type a short line and click **Send test**. It should appear in that space within seconds. If it fails, see Troubleshooting before going further. 4. **My Agents - this agent - Skills - Tools & Workflows** Turn **Google Chat** on. Keep **Send to default space**, or add **Send message (pick space)** and choose the **Allowed spaces**. Click **Save** on the card, then save the agent. 5. **Tell the agent when to post** In the agent’s instructions, say what to post and where. For example: “When a caller asks for a quote, post their name, number and request to the Sales space.” The agent only posts when your instructions give it a reason. 6. **Prove it** Call the agent and ask for something that matches the rule. The message should land in the space during or right after the call. If it does not, open the call in **Calls** and check whether the agent tried to post. ## What it can do [Section titled “What it can do”](#what-it-can-do) * Post a message to the default space, with no space to choose. * Post to a named space, so one agent can route sales leads to one space and complaints to another. * Post through an incoming webhook into a space the authorized account is not part of. * Reply in an existing thread when a thread key is given. * In workflows: **Google Chat - Send Message**, **Google Chat - Send to Default Space** and **Google Chat - Send via Webhook** nodes, with call variables in the message. The agent only sends. It does not read or answer conversations in Google Chat. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - connections and agent tools.→](/integrations/)[Google Workspace - calendar, contacts, Drive, Sheets and mail.→](/integrations/google/)[Google Meet - meeting recordings as calls.→](/integrations/communication/google-meet/)[Tools & Workflows - turning tools on per agent.→](/agent-configuration/built-in-tools/)
# Google Meet
> Bring your team's Google Meet recordings into Voice Logica as calls, with transcript, AI summary and follow-up emails.
Google Meet turns your recorded video meetings into calls in Voice Logica. Each recording is transcribed and analyzed by the agent you choose, then appears in **Calls** next to your phone calls, with a summary you can search and share. It can also email the summary or the full transcript to the participants and run that agent’s end-of-call workflows. The path is **Integrations - Catalogue - Google Meet - Authorize**. The connection is **per teammate**: each person connects their own Google account, and only the recordings in their own Drive come in. After the first teammate connects, the others use **Sign in with Google** on the Google Meet card under **Connected**. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A Google Workspace account that records meetings in Google Meet. Recordings are saved to the Drive of the person who started the recording. * If your Google Workspace administrator restricts third-party apps, they must allow Voice Logica in the Google Admin console first. * An agent to analyze the recordings. Its language and **Call results** settings decide what the summary contains. The rest of Google (calendar, contacts, Drive files, Sheets, mail) is a separate company-wide connection. See [Google Workspace](/integrations/google/). ## What you enter [Section titled “What you enter”](#what-you-enter) There are no credentials to type. After Google consent, the **Google Meet** dialog opens with these settings for your account: Recordings folderREQUIRED The Drive folder where Meet saves your recordings. **Pick a Drive folder** opens Google’s picker. Choose the folder, not a recording file. Subfolders are included. Analysis agentREQUIRED The agent that transcribes and analyzes each recording. Without one, recordings are imported but stay unanalyzed. Post-analysis actions Switches for what happens after each recording: run AI analysis, email the summary or the transcript to participants, run the agent’s end-of-call workflows, create contacts from participant emails, and grab screenshots from the video. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Google Meet - Authorize** Sign in with the Google account that owns your Meet recordings and accept the consent screen. The **Google Meet** dialog opens when you return. A teammate who connects later uses **Sign in with Google** on the Google Meet card under **Connected**, or **Connect your Google** inside the dialog. 2. **Pick a Drive folder** Choose the folder Meet records into. When the folder is saved, the first sync starts straight away. 3. **Analysis agent** Select the agent that should analyze your meetings. Leave **Run AI analysis after transcript** on if you want a summary. Turn on **Email summary to participants** only when attendees should receive it. 4. **Record a short test meeting** Start a Google Meet, turn recording on, talk for a minute and end the meeting. Wait until Google has saved the recording in your Drive folder. 5. **Sync now** Open the dialog again (**Connected - Google Meet - Configure**) and click **Sync now**. New calls appear within a few minutes. Without this step the sync runs on its own every 15 minutes. 6. **Check Calls** Open **Calls**. The meeting is listed as a call with the transcript and, with analysis on, the summary. If you turned on email to participants, check that it arrived. To import older meetings, set **Back-fill from (optional)** to a start date before **Sync now**. To import only certain meetings, use **Pick specific recordings**, tick them and click **Ingest selected**. **Customize for this ingest** changes the post-analysis actions for that import only. ## What it can do [Section titled “What it can do”](#what-it-can-do) * Import every new Meet recording in your folder as a call, every 15 minutes. * Transcribe it and have the chosen agent summarize it, or keep it transcript-only (faster and cheaper). * Email the summary or the full transcript to the participants. The person who connected is left out by default. * Run the agent’s end-of-call workflows, for example to update a CRM or notify a colleague. * Create contacts from participant emails. * Grab and analyze frames when someone shares a screen or says “look at this”, and optionally a still every 10 seconds to 5 minutes. * Merge the same meeting into one call when two teammates both recorded it. * Let a teammate who manages integrations open another person’s Meet settings and change the agent or actions. Only the account owner can change their own folder. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - connections and agent tools.→](/integrations/)[Google Workspace - calendar, contacts, Drive, Sheets and mail.→](/integrations/google/)[Google Chat - post meeting and call outcomes to a team space.→](/integrations/communication/google-chat/)[Call results - what the analysis agent extracts.→](/agent-configuration/call-results/)
# Microsoft 365
> Connect Microsoft 365 so agents can check Outlook availability, book appointments in Outlook Calendar and look up Outlook contacts.
Microsoft 365 is for companies that run their diary in Outlook instead of Google. Once connected, the agent can check when you are free, book or move a meeting in Outlook Calendar while the caller is on the line, and find a contact in your Outlook address book. It can also be the calendar behind the agent’s **Appointments**. The path is **Integrations - Catalogue - Microsoft 365 - Authorize**. One connection is shared by the whole company: the agent reads and writes the calendar and contacts of the Microsoft account that signed in. Connecting again with another account replaces the first one. Then turn the **Outlook Calendar** tool on under the agent’s **Skills - Tools & Workflows**, or choose Microsoft 365 as the calendar provider for appointments. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * The Microsoft 365 account whose calendar the agent should use. A shared front-desk or bookings account works better than a personal one, because every booking goes into that account’s calendar. * Permission to approve the Microsoft consent screen. It asks for calendar, contacts, profile and Microsoft Teams access. * On Voice Logica, a user who can manage integrations. ## What you enter [Section titled “What you enter”](#what-you-enter) There are no credentials to type at connect. On the agent’s **Outlook Calendar** tool card: OperationsREQUIRED **Check availability** and **List events** are on by default. Add **Create event** and **Update event** to let the agent book and change meetings, and **Look up contact** to search Outlook contacts. Default calendar ID (optional) Leave empty to book into the account’s default calendar. Time zone The time zone used to read availability and book meetings. Defaults to `Europe/Athens`. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Microsoft 365 - Authorize** The page moves to Microsoft. Sign in with the account that owns the calendar and accept the permissions. You return to Integrations with a confirmation, and Microsoft 365 appears under **Connected**. 2. **My Agents - this agent - Skills - Tools & Workflows** Turn **Outlook Calendar** on. Keep **Check availability** and **List events**, and add **Create event** if the agent should book. Check the **Time zone**. Click **Save** on the card, then save the agent. 3. **Tell the agent how to book** In the instructions, say what a booking needs (name, phone, reason, length) and which hours to offer. The agent uses the calendar only for what you describe. 4. **Prove it** Call the agent, ask for a slot that is free in Outlook and confirm it. The event should appear in Outlook Calendar within seconds. Then ask for a slot you know is busy: the agent should offer another time. ### Use Microsoft 365 for Appointments [Section titled “Use Microsoft 365 for Appointments”](#use-microsoft-365-for-appointments) If your agents already use the built-in **Appointments** booking, you can point it at Outlook instead of Google: 1. **Company Profile - Calendar provider** - **Microsoft 365 (Teams / Outlook)**. This becomes the default for all agents. 2. In the agent’s **Call handling - Appointments**, each calendar can also choose its own **Calendar workspace**. Pick the Microsoft 365 calendar to sync availability, then save. ## What it can do [Section titled “What it can do”](#what-it-can-do) * Check free and busy times before offering a slot. * List upcoming events in a date range, so the agent can tell a caller when their meeting is. * Create an event, with attendees who receive an Outlook invitation. * Change the time, title or attendees of an existing event. * Search Outlook contacts by name or email. * Serve as the calendar behind **Appointments**. * With [Claude or ChatGPT](/integrations/claude-chatgpt/) connected to Voice Logica, the same connection also lets your AI assistant read and book Outlook events, add a Teams meeting link, and post to a Microsoft Teams channel. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - connections and agent tools.→](/integrations/)[Google Workspace - the same jobs on Google Calendar.→](/integrations/google/)[Tools & Workflows - turning tools on per agent.→](/agent-configuration/built-in-tools/)[Claude and ChatGPT - use Outlook and Teams from your AI assistant.→](/integrations/claude-chatgpt/)
# WhatsApp Business
> Connect a WhatsApp Business number so the same agent that answers your phone also answers WhatsApp chats.
WhatsApp Business puts your agent on the number your customers already message. The agent replies to chats with the same knowledge and tools it uses on the phone, can answer voice notes, and you can start conversations with Meta-approved message templates. You can keep using the WhatsApp Business app on your phone: you and the agent share the same number. The path is **Integrations - Catalogue - WhatsApp Business - Connect**. Sign-in happens in a Meta window (Meta Embedded Signup); you never paste a token. Each connected number belongs to the company and is answered by one agent. You manage it afterwards on that agent under **Channels - WhatsApp**. WhatsApp Business is in pilot. If the card is not in your Catalogue, it is not enabled for your account yet. Contact Voice Logica support. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A Facebook account that is an admin of your business’s Meta business portfolio, or permission to create one during sign-up. * The phone number to connect: * **Already on the WhatsApp Business app**: have that phone with you. You confirm a code in the app, and the app must stay open while existing chats sync. * **Not on WhatsApp yet**: a number that can receive Meta’s verification. * The agent that should answer. Check its knowledge and instructions first: it answers customers from the first message. * Allow pop-ups for Voice Logica, and turn off content blockers that block Facebook scripts. ## What you enter [Section titled “What you enter”](#what-you-enter) AgentREQUIRED The agent that answers messages arriving on this number. Bot name (optional) A name for this connection. Everything else (business portfolio, WhatsApp account, number) is chosen in Meta’s window. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - WhatsApp Business - Connect** Pick the **Agent** that should answer. 2. **Choose how to connect** * **Keep WhatsApp Business app** if the number is already on the WhatsApp Business app. You keep chatting from the phone; the agent answers on the same number. * **Connect new number** for a number that is not on the app. 3. **Finish in Meta’s window** Sign in with Facebook, choose or create your business portfolio and WhatsApp account, and pick the number. With **Keep WhatsApp Business app**, confirm the code in the app on your phone and keep the app open until chats have synced. When the window closes, the number appears under **Connected numbers** as **Active**. 4. **My Agents - this agent - Channels - WhatsApp** Check that the number is switched on for this agent, and that **Enable messaging** is on. Turn on **Enable typing indicator** so customers see the agent is replying, and **Enable audio message response** if customers send voice notes. 5. **Prove it** From another phone, send a WhatsApp message to the number with a question your agent knows. The reply should arrive within seconds. Open **Calls**: the conversation is listed there like a call. ## Start a conversation [Section titled “Start a conversation”](#start-a-conversation) WhatsApp only lets a business message someone first with an **approved template**. After the customer replies, the agent continues the chat normally. 1. On the agent’s **Channels - WhatsApp**, open the number and go to **Message templates - New template**. Enter **Name** (lowercase letters, numbers and underscores), **Language**, **Category** and **Body**, with variables such as `{{name}}`. **Save template** sends it to Meta for review. 2. When Meta approves it, send it from **Outbound message**, or from a contact with **Send WhatsApp**. Fill every template variable before sending. Editing a template sends it back to Meta for review. ## What it can do [Section titled “What it can do”](#what-it-can-do) * Answer WhatsApp chats with the agent’s knowledge, instructions and tools, on the number you already use. * Let you and the agent share the number: you reply from the WhatsApp Business app whenever you want. * Understand voice notes and reply with a voice note in the agent’s voice. * Mark messages as read and show a typing indicator while the agent writes. * Create, edit and delete message templates, and start conversations with approved ones. * Answer WhatsApp voice calls to the number with **Enable WhatsApp calling**, when Meta allows calling on that number. * Keep every conversation in **Calls**, next to your phone calls. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - connections and agent tools.→](/integrations/)[Website widget - the agent on your website.→](/agent-configuration/website-widget/)[Viber - another chat channel for the same agent.→](/agent-configuration/viber/)[Test your agent - check answers before customers write in.→](/agent-configuration/test-your-agent/)
# Yuboto PBX
> Send the calls your team handles on a Yuboto cloud PBX into Voice Logica, with recording, transcript, AI summary and a workflow after every call.
Yuboto PBX brings the calls your people answer on a Yuboto cloud PBX (vPBX) into Voice Logica. When a call on the PBX ends, Voice Logica fetches its recording from Yuboto, an agent transcribes and summarizes it, and the call appears in **Calls** with the caller saved as a contact. A workflow then runs, so you can email the summary, update a CRM or alert a colleague after every call. The path is **Integrations - Catalogue - Yuboto PBX - Connect**. One connection is shared by the whole company. The connection on its own does nothing: the calls come in through a workflow that starts with the **On Yuboto Pbx Call Hangup** trigger. This page is about reporting on calls your team handles on the PBX. To make the agent itself answer calls as an extension of a Yuboto vPBX, see [Carriers](/telephony/carriers/). ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A Yuboto cloud PBX. Its address looks like `yourcompany.vpbx2.yuboto.com`. * The PBX API key from Yuboto. * Call recording turned on in the PBX for the extensions you want to report on. Without a recording the call is logged but not transcribed. * An agent to analyze the calls. Its **Call results** settings decide what the summary contains. * Access to the PBX’s call-event (webhook) settings, or Yuboto support to set them for you. ## What you enter [Section titled “What you enter”](#what-you-enter) In **Connect Yuboto PBX**: DomainREQUIRED The first part of your PBX address, letters and numbers only. For `yourcompany.vpbx2.yuboto.com`, enter `yourcompany`. API keyREQUIRED The PBX API key. Voice Logica checks it with Yuboto before saving. On the workflow’s **On Yuboto Pbx Call Hangup** trigger: AgentREQUIRED The agent that transcribes and analyzes these PBX calls. Allowed Extensions Only calls on these extensions start the workflow. Leave empty for all. Username Optional. With **Password**, only events sent with these Yuboto credentials start the workflow. Password Optional. Used together with **Username**. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Yuboto PBX - Connect** Enter **Domain** and **API key**, then **Connect**. If Yuboto rejects them you see **Invalid Yuboto PBX domain or API key**. 2. **Workflows - new workflow - On Yuboto Pbx Call Hangup** Add the trigger from **Yuboto Triggers**. Select the **Agent**, and add **Allowed Extensions** if only some extensions should be reported. 3. **Copy the Yuboto URL** The trigger shows a **Yuboto URL**. Click **Copy URL**. 4. **Point the PBX at it** In your Yuboto PBX, set the call-event webhook to POST to that URL, authenticated with the same credentials as the API key. Events with other credentials are rejected. If you do not have access to these settings, send the URL to Yuboto support. 5. **Add what should happen after each call** Connect nodes after the trigger, for example a **Send Email** node with the call summary to the extension owner. The trigger gives the next nodes the call summary, status, duration, caller number, direction and a link to the call. 6. **Save and prove it** Save the workflow. Call one of the extensions from a mobile, talk for a minute and hang up. Within a few minutes the call appears in **Calls** with the recording and summary, and the workflow’s action (the email) arrives. ## What it can do [Section titled “What it can do”](#what-it-can-do) * Log every external call on the PBX that ends, as answered, missed, busy or failed. * Find the caller among your contacts by phone number, or create the contact. * Fetch the recording from Yuboto and have the agent transcribe and summarize it. * Pass the call details to a workflow: send an email or SMS, write to a CRM, create a task. * Limit reporting to selected extensions. * Ignore internal calls between extensions. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - connections and agent tools.→](/integrations/)[Workflows - build what happens after each call.→](/workflows/)[Carriers - connect the agent to Yuboto as a trunk or vPBX extension.→](/telephony/carriers/)[Call results - what the agent extracts from each call.→](/agent-configuration/call-results/)
# Freshdesk
> Connect Freshdesk so the agent recognises callers from your helpdesk contacts, reads their recent tickets, opens new tickets and adds replies during a call.
With Freshdesk connected, the agent recognises a caller whose phone number is on a Freshdesk contact, tells them the status of their latest tickets, opens a new ticket for a new problem and adds a reply to an existing ticket, all while the caller is on the line. Open **Integrations - Catalogue - Freshdesk - Connect**. One connection is shared by the whole company. On the agent, Freshdesk is used through the **Helpdesk** tool, the same tool that serves Zendesk. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * **Your Freshdesk subdomain.** The part before `.freshdesk.com` in your helpdesk address. * **An API key.** In Freshdesk, open your profile settings and copy the **API Key** shown there. The key belongs to the Freshdesk agent who owns it. Tickets and replies the AI creates are made with that agent’s permissions, so prefer a dedicated agent account for Voice Logica. ## What you enter [Section titled “What you enter”](#what-you-enter) SubdomainREQUIRED Only the subdomain, not the full address. API keyREQUIRED The key from the Freshdesk profile page. Account label Under **Advanced settings**. A name for this connection on the **Connected** tab. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Freshdesk - Connect** Enter the subdomain and API key. 2. **Test connection** Voice Logica signs in to Freshdesk with the key. Fix any error before you continue. 3. **Connect** Your Freshdesk contacts are then synced into Voice Logica every 15 minutes, so callers can be recognised without waiting on Freshdesk. 4. **My Agents - your agent - Skills - Tools & Workflows** Turn **Helpdesk** on. Under **Operations** keep **Look up contact by phone** and **Get recent tickets**, and add **Create ticket** and **Add ticket reply** if the agent should write to Freshdesk. Turn on **Auto-identify caller on connect** to look the caller up before the agent speaks, and **Pre-fetch tickets on call start** to load their tickets at the same time. 5. **Save** the agent. 6. **Prove it** Call the agent from a phone number stored on a Freshdesk contact that has a ticket. Ask “What is happening with my ticket?” and you should hear its subject and status. Then report a new problem and check that the ticket appears in Freshdesk. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | Know who is calling | Look up contact by phone; look up contact by name | | Remember the caller | Link caller to contact: after the caller confirms a name match, their number is saved to that contact so the next call is recognised at once | | Answer “where is my ticket” | Get recent tickets for the caller | | Log a new problem | Create ticket, with subject, description and priority; the caller’s number is used as the requester | | Follow up | Add ticket reply to an existing ticket | **Create ticket** and **Add ticket reply** write to Freshdesk. They only run when you select them under **Operations**. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the Helpdesk tool is turned on.→](/agent-configuration/built-in-tools/)[Zendesk - the other helpdesk behind the same tool.→](/integrations/crm/zendesk/) [Salesforce](/integrations/crm/salesforce/) · [HubSpot](/integrations/hubspot/) - CRM connections.
# Salesforce
> Authorize your Salesforce org so the agent identifies callers from Contacts and Leads, creates a Lead for unknown callers and logs each call as an activity.
With Salesforce connected, the agent recognises a caller whose phone number is on a Contact or Lead and greets them by name. If the number is unknown, it can find the record by the name or email the caller gives, create a new Lead with the caller’s details and a call summary, and log the call as a completed Task on the matched record. Open **Integrations - Catalogue - Salesforce - Connect**, then click **Authorize with Salesforce**. The connection uses Salesforce’s own sign-in and consent screen; you never paste a Salesforce password into Voice Logica. One connection is shared by the whole company; every agent that turns the Salesforce tool on uses it. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A Salesforce user who can approve app access for the org. A Salesforce administrator is the safest choice. * Know whether you are connecting the production org or a sandbox. * Pop-ups allowed for the Voice Logica app. The Salesforce consent screen opens in a new window. By default you authorize through Voice Logica’s standard Salesforce app and nothing has to be created in Salesforce. Only if your company policy requires your own app, create an External Client App (or use an existing Connected App) in **Setup**, enable OAuth with the **api** and **refresh\_token** scopes and PKCE, and ask Voice Logica support for the callback URL to enter there. ## What you enter [Section titled “What you enter”](#what-you-enter) Everything in the dialog is optional. Leave it as it is to connect a production org with Voice Logica’s app. Sandbox environment Turn on to sign in to a sandbox org instead of production. Client ID (Consumer Key) Under **Use your own Salesforce app**. Only when you use your own External Client App or Connected App. Client secret (Consumer Secret) Under **Use your own Salesforce app**. Fill it together with the Client ID, or leave both empty. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Salesforce - Connect** Turn on **Sandbox environment** only for a sandbox org. Fill **Use your own Salesforce app** only if you created your own app. 2. **Authorize with Salesforce** Sign in to Salesforce in the new window and approve access. When the window closes, Salesforce shows on **Connected**. 3. **Sync now** (optional) On the Salesforce card under **Connected**, **Sync now** loads your Contacts and Leads into Voice Logica immediately. Otherwise they are synced once a day. 4. **My Agents - your agent - Skills - Tools & Workflows** Turn **Salesforce** on. Under **Operations** keep **Identify caller by phone** and add the ones you need. Leave **Auto-identify caller on connect** on so the caller is looked up before the agent speaks. 5. **Save** the agent. 6. **Prove it** Call the agent from a phone number stored on a Salesforce Contact. The agent should greet you by name. Then call from a number that is not in Salesforce, give a name and company, and check that a new Lead appears in Salesforce after the call (with **Create lead** selected). ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | -------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | Know who is calling | Identify caller by phone; look up a contact by name or by email; get a contact by its Salesforce record id | | Remember the caller | After the caller confirms a name match, the agent links their number to that record so the next call is recognised at once | | Capture new business | Create lead for an unknown caller, with name, company, phone, email and a call summary | | Keep Salesforce up to date | Log call: a completed Task with the outcome on the matched Contact or Lead | Phone and email lookups check the synced copy first and fall back to Salesforce live. Name lookups search the synced copy only, so a record created after the last sync is found by phone or email until the next sync. **Create lead** and **Log call** write to Salesforce. They only run when you select them under **Operations**. Salesforce requires a last name and a company on every Lead, so the agent asks for both. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the Salesforce tool is turned on.→](/agent-configuration/built-in-tools/) [HubSpot](/integrations/hubspot/) · [Zoho CRM](/integrations/zoho-crm/) - other CRM connections. [Freshdesk](/integrations/crm/freshdesk/) · [Zendesk](/integrations/crm/zendesk/) - support tickets during the call.
# Zendesk
> Connect Zendesk so the agent recognises callers from your Zendesk users, reads their recent tickets, opens new tickets and adds replies during a call.
With Zendesk connected, the agent recognises a caller whose phone number is on a Zendesk user, tells them the status of their latest tickets, opens a new ticket for a new problem and adds a reply to an existing ticket, all while the caller is on the line. Open **Integrations - Catalogue - Zendesk - Connect**. One connection is shared by the whole company. On the agent, Zendesk is used through the **Helpdesk** tool, the same tool that serves Freshdesk. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) A Zendesk administrator creates the token: 1. In Zendesk, open **Admin Center - Apps and integrations - APIs - Zendesk API**. 2. Make sure token access is enabled, then on the **API token** tab click **Add API token**. 3. Copy the token. Zendesk shows it only once. You also need your **subdomain** (the part before `.zendesk.com`) and the **email of a Zendesk agent**. Tickets and replies the AI creates are made with that agent’s permissions, so prefer a dedicated agent account for Voice Logica. ## What you enter [Section titled “What you enter”](#what-you-enter) SubdomainREQUIRED Only the subdomain, not the full address. Agent emailREQUIRED The email the Zendesk agent signs in with. API tokenREQUIRED The token from Admin Center. Account label Under **Advanced settings**. A name for this connection on the **Connected** tab. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Zendesk - Connect** Enter the subdomain, agent email and API token. 2. **Test connection** Voice Logica signs in to Zendesk with these details. Fix any error before you continue. 3. **Connect** Your Zendesk users are then synced into Voice Logica every 15 minutes, so callers can be recognised without waiting on Zendesk. 4. **My Agents - your agent - Skills - Tools & Workflows** Turn **Helpdesk** on. Under **Operations** keep **Look up contact by phone** and **Get recent tickets**, and add **Create ticket** and **Add ticket reply** if the agent should write to Zendesk. Turn on **Auto-identify caller on connect** to look the caller up before the agent speaks, and **Pre-fetch tickets on call start** to load their tickets at the same time. 5. **Save** the agent. 6. **Prove it** Call the agent from a phone number stored on a Zendesk user who has a ticket. Ask “What is happening with my ticket?” and you should hear its subject and status. Then report a new problem and check that the ticket appears in Zendesk. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | | Know who is calling | Look up contact by phone; look up contact by name | | Remember the caller | Link caller to contact: after the caller confirms a name match, their number is saved to that user so the next call is recognised at once | | Answer “where is my ticket” | Get recent tickets for the caller | | Log a new problem | Create ticket, with subject, description and priority; the caller’s number is used as the requester | | Follow up | Add ticket reply to an existing ticket | **Create ticket** and **Add ticket reply** write to Zendesk. They only run when you select them under **Operations**. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the Helpdesk tool is turned on.→](/agent-configuration/built-in-tools/)[Freshdesk - the other helpdesk behind the same tool.→](/integrations/crm/freshdesk/) [Salesforce](/integrations/crm/salesforce/) · [HubSpot](/integrations/hubspot/) - CRM connections.
# Custom API
**Integrations - Catalogue - Custom API - Connect** links any REST API with a base URL and one auth header for the agent to call mid-conversation.  custom-api-connectExpand ## What you enter [Section titled “What you enter”](#what-you-enter) API base URLREQUIRED Root URL, e.g. . No trailing slash. Auth header nameREQUIRED e.g. Authorization or X-Api-Key. Auth header valueREQUIRED The secret sent on every request. Label Friendly name, e.g. My API. ## First setup [Section titled “First setup”](#first-setup) 1. **Catalogue - search Custom API - Connect**. 2. Fill base URL + auth header name/value + label - **Connect** (cancel if you are only exploring). 3. Enable the Custom API tool on the agent and map the operations your contract exposes. 4. Save and prove on a test call. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connect then agent tool.→](/integrations/)[AI Assistants - when the other system should call Voice Logica instead.→](/integrations/mcp-settings/)
# Entersoft ONE
> Connect Entersoft ONE through its Web API so the agent can identify callers, search items, read balances and submit sales documents during a call.
With Entersoft ONE connected, the agent recognises a customer by the number they call from, searches your items, reads the customer’s balance and aging, and can submit a sales document through an Entersoft EbsService that you configure. It can also run Public Queries and EbsServices that your Entersoft partner has prepared for specific questions. Open **Integrations - Catalogue - ENTERSOFTONE - Connect**. One connection is shared by the whole company; each agent then decides which operations it may use. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) Ask your Entersoft partner or administrator for: * **The Web API address** (for example `https://eswebapi.example.com/eswebapijti`) if Entersoft is reachable from the internet, or a **Tunnel** if it runs inside your office network. A tunnel is a reverse connection from a small installer on your network to Voice Logica, so no firewall ports need to be opened. Tunnels are created under **AI Setup - Tunnels**, which only admins see; if you do not see it, ask Voice Logica support to create one. * **A web user** (User id and password) and the **Branch id** that user logs in with. * **The Public Query names** that return customers, items, balances and customer history. Customer recognition and item search depend on the customers and items queries; without them nothing is synced. * **The EbsService name** that creates a sales document, if the agent will take orders. * Subscription id, subscription password and bridge id, only if your installation uses them. ## What you enter [Section titled “What you enter”](#what-you-enter) Cloud URL / TunnelREQUIRED Pick one. For Cloud, enter the Web API URL without a trailing slash. For Tunnel, pick an active tunnel. User idREQUIRED The Entersoft web user. PasswordREQUIRED Stored encrypted. Branch idREQUIRED The branch code the user logs in with, for example `ΑΘΗ`. Language idREQUIRED Usually `el-GR`. Subscription id Under **Advanced settings**. Leave empty unless your partner gives you one. Subscription password Under **Advanced settings**. Keep the pre-filled value unless your partner gives you another. Bridge id Under **Advanced settings**. Only for load-balanced installations. Allow self-signed TLS certificate Turn on only for an on-premises server with a private certificate. Public query - customers Name of the Public Query that returns customers changed since the last sync. Needed for caller recognition. Public query - items Name of the Public Query that returns items. Needed for item search. Public query - balances Needed for balance and aging answers. Public query - history Used for the caller’s recent history at call start. EBS service - create sales doc Name of the EbsService that creates a sales document. Needed before the agent can submit orders. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - ENTERSOFTONE - Connect.** Choose **Cloud URL** or **Tunnel** and enter the user, password, branch and language. 2. Open **Advanced settings** and enter the Public Query names, and the EbsService name if the agent will submit sales documents. 3. Press **Test connection**. When it succeeds, press **Connect**. Customers and items sync in the background every 15 minutes; **Sync now** and **Balances** on the connected card start a sync immediately. 4. Open **My Agents** - the agent - **Skills - Tools & Workflows**. Turn on **ENTERSOFTONE**, press **Configure**, and under **Operations** select what the agent may do. Identify caller by phone is selected by default. If the agent will submit documents, set **Max sales doc value** and **Max sales doc lines**. **Save** the tool settings and **Save** the agent. 5. Call the agent from a phone number stored on an Entersoft customer. The agent should greet the customer by name. Ask “What do I owe?” and the agent should read back the balance. If the greeting stays generic, open **Calls** and check the tool calls on that call. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | | Find the customer | Identify the caller by phone; look up by tax number (ΑΦΜ), customer code or name; link the caller’s number to a customer for future calls | | Items | Search items by name, code or barcode | | Balances | Outstanding balance; aging in 1-30 / 31-60 / 61-90 / 90+ day buckets | | Orders and documents | Create a sales document through the configured EbsService | | Custom reads and actions | Run a Public Query or an EbsService that your partner prepared, and read back the result | Creating a sales document is a write operation: it works only when the operation is selected and **EBS service - create sales doc** is set on the connection. In the tool settings you can also turn on a history pre-fetch at call start and define extra EbsService parameters the agent must collect, such as a delivery location. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and agent tool, step by step.→](/integrations/) [Soft1 ERP](/integrations/erp/soft1/) - [Galaxy ERP](/integrations/erp/galaxy-erp/) - [Pylon ERP](/integrations/erp/pylon/) - other ERPs.
# Exelixis Smart ERP
> Connect the Smart ERP by Exelixis Software so the agent tells callers where their order is, with carrier and tracking number, and can open support tickets and take orders.
With Exelixis Smart ERP connected, a caller who asks “where is my order?” hears the order status, the carrier and the tracking number of each shipment, straight from the ERP. Depending on what your Smart installation exposes, the agent can also identify the caller’s company, open a support ticket, search products with price and stock, take a telephone order, read the account balance and email a statement. Open **Integrations - Catalogue - Exelixis Smart ERP - Connect**. One connection is shared by the whole company; every agent that turns the Exelixis Smart ERP tool on uses it. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) Exelixis Software installs a VoiceAI endpoint service next to your Smart ERP. Ask Exelixis for: * The **base URL** of that service, the root address only (for example a host name with port 5010). * The **API key** for the service. * Which endpoints are enabled on your installation. Order lookup, contact and ticket, product, order, balance and statement endpoints are delivered separately, and an operation only works when its endpoint exists on your service. The service must be reachable from the internet at that address. Tunnel mode is not offered for this integration. ## What you enter [Section titled “What you enter”](#what-you-enter) API base URLREQUIRED The service root from Exelixis. Do not add the endpoint path after it. API keyREQUIRED From Exelixis. Stored encrypted. Label Optional name shown on the connected card. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Exelixis Smart ERP - Connect** Paste the base URL and API key from Exelixis. 2. **Test connection**, then **Connect** Voice Logica calls the service with your key. A rejected key or an unreachable address fails here. Nothing is copied from the ERP: every answer is read live during the call. 3. **My Agents - your agent - Skills - Tools & Workflows** Turn **Exelixis Smart ERP** on. **Look up order by number** is selected by default. Add **Identify caller (phone / ΑΦΜ)** so the caller’s company is looked up as the call connects, and any other operations your installation supports. Set **Max order lines** if you enable **Create order**. 4. **Save** the agent. 5. **Prove it** Call the agent from a phone number registered on a customer in Smart and say “I’d like to know where order” followed by a real order number. You should hear the order status and, for shipped orders, the carrier and tracking number. From a number that is not on the order, the agent first asks for the business ΑΦΜ. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | ------------------- | --------------------------------------------------------------------------------------------------------------------- | | Know who is calling | Identify caller by phone or ΑΦΜ; list the contacts registered under a company | | Order tracking | Look up an order by number, with carrier, delivery notes and tracking numbers; list a customer’s recent orders by ΑΦΜ | | Support | List support members; create a support ticket (the call link is attached) | | Products and orders | Search products by code or description with unit price and stock; create order | | Account | Read the customer or supplier balance; send the statement to the email already on their card | Order details are protected. The agent only reads an order when the caller gives the matching ΑΦΜ or rings from a phone registered on that order. Otherwise it confirms the order exists and asks for the ΑΦΜ. **Create order**, **Create support ticket** and **Send statement** write to the ERP or send email. They only run when you enable them under **Operations**. Orders with more lines than **Max order lines** are rejected; there is no value cap, because the ERP reports the total only after the order is created. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the Exelixis Smart ERP tool is turned on.→](/agent-configuration/built-in-tools/) [Megasoft](/integrations/erp/megasoft/) · [Soft1](/integrations/erp/soft1/) - other ERP connections.
# Galaxy Drugstore
> Connect the Galaxy Drugstore pharmacy ERP so the agent can identify callers, quote customer prices, check stock and place orders during a call.
With Galaxy Drugstore connected, the agent recognises a customer by the number they call from, searches the pharmacy catalogue, quotes the customer’s own price with discounts, checks stock in a warehouse, suggests items with the same active ingredient, and can price and place an order. It can also tell the customer their balance, aging, order status and next delivery route, and send links to invoices and a statement (καρτέλα) PDF. Open **Integrations - Catalogue - Galaxy Drugstore - Connect**. One connection is shared by the whole company; each agent then decides which operations it may use. This is the pharmacy edition of Galaxy; for the general edition see [Galaxy ERP](/integrations/erp/galaxy-erp/). ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) Ask your Galaxy administrator for: * **The Galaxy API address** of your installation, if it is reachable from the internet, or a **Tunnel** if Galaxy runs inside your network. A tunnel is a reverse connection from a small installer on your network to Voice Logica, so no firewall ports need to be opened. Tunnels are created under **AI Setup - Tunnels**, which only admins see; if you do not see it, ask Voice Logica support to create one. * **A Galaxy API user** (username and password). It needs read access to customers, items, stock, prices and order status, and write access to sales entries if the agent will place orders. * **The company code** (usually `01`) and the **warehouse code** used for stock checks (for example `01-01`). ## What you enter [Section titled “What you enter”](#what-you-enter) Cloud URL / TunnelREQUIRED Pick one. For Cloud, enter the Galaxy API address. For Tunnel, pick an active tunnel. UsernameREQUIRED The Galaxy API user. PasswordREQUIRED Stored encrypted. Company codeREQUIRED The Galaxy company code. Pre-filled with `01`. Warehouse codeREQUIRED The default warehouse for stock checks. Pre-filled with `01-01`. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Galaxy Drugstore - Connect.** Choose **Cloud URL** or **Tunnel**, then enter the user, password, company code and warehouse code. 2. Press **Test connection**. When it succeeds, press **Connect**. Customers and items sync in the background; the first sync of a large catalogue can take several minutes, and after that it repeats every 15 minutes. **Sync now** and **Balances** on the connected card start a sync immediately. Stock and prices are always read live from Galaxy. 3. Open **My Agents** - the agent - **Skills - Tools & Workflows**. Turn on **Galaxy Drugstore**, press **Configure**, and under **Operations** select what the agent may do. Identify caller by phone is selected by default. Add item search, availability and price first; add order placing once you have tested it. 4. If the agent will place orders, set **Max order value** and **Max order lines**. **Default warehouse code** lets this agent check stock in a different warehouse from the company default. **Save** the tool settings and **Save** the agent. 5. Call the agent from a phone number stored on a Galaxy customer. The agent should greet the customer by name. Ask “Do you have Depon, and at what price?” and the agent should answer with availability and the customer’s price. If the greeting stays generic, open **Calls** and check the tool calls on that call. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Find the customer | Identify the caller by phone; look up by tax number, customer code or name; link the caller’s number to a customer for future calls | | Items | Search by name, barcode or supplier code; find items with the same active ingredient; the customer’s most-bought items; the overall best sellers | | Stock and price | Check availability in a warehouse; the customer’s price with all discounts | | Orders | Calculate an order total before placing it; place the order in Galaxy; check order status; the next delivery route | | Balances and documents | Outstanding balance; aging in 1-30 / 31-60 / 61-90 / 90+ day buckets; transaction history between two dates; balance per drug type (installations with that extension only); a 30-minute download link for the statement PDF or invoice PDFs | Placing an order is a write operation: it works only when the operation is selected, and the API user must be allowed to post sales entries. In the tool settings you can also have the agent load the caller’s recent orders at call start, and define extra Galaxy order columns the agent must fill. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and agent tool, step by step.→](/integrations/)[Galaxy ERP - the general Galaxy edition.→](/integrations/erp/galaxy-erp/) [Soft1 ERP](/integrations/erp/soft1/) - [Pylon ERP](/integrations/erp/pylon/) - other ERPs.
# Galaxy ERP
> Connect a SingularLogic / Epsilon Galaxy ERP so the agent can identify callers, search items and submit commercial entries during a call.
With Galaxy ERP connected, the agent recognises a customer by the number they call from, searches your item catalogue, and can submit a commercial entry (for example an order) in Galaxy and read it back later. This is the general Galaxy ERP. Pharmacy businesses on the pharmacy edition use [Galaxy Drugstore](/integrations/erp/galaxy-drugstore/) instead. Open **Integrations - Catalogue - Galaxy ERP - Connect**. One connection is shared by the whole company; each agent then decides which operations it may use. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) Ask your Galaxy integrator or administrator for: * **The Galaxy Web API address**, if Galaxy is reachable from the internet, or a **Tunnel** if it runs inside your office network. A tunnel is a reverse connection from a small installer on your network to Voice Logica, so no firewall ports need to be opened. Tunnels are created under **AI Setup - Tunnels**, which only admins see; if you do not see it, ask Voice Logica support to create one. * **A Galaxy API user** (username and password). * **The company id**, only if that user has access to more than one company. * **The commercial-entry type and currency ids** the agent should use for new entries, if the agent will submit orders. ## What you enter [Section titled “What you enter”](#what-you-enter) Cloud URL / TunnelREQUIRED Pick one. For Cloud, enter the Web API address without a trailing slash and without `/api`. For Tunnel, pick an active tunnel. UsernameREQUIRED The Galaxy API user. PasswordREQUIRED Stored encrypted. Allow self-signed TLS certificate Turn on for an on-premises Galaxy server whose certificate is not issued by a public authority. Company Leave empty for single-company installs. Fill in only when your integrator says the user has access to several companies. Phone field Under **Advanced settings**. The field on the customer that holds the phone number. Defaults to `Phone1`; change it only if your installation stores phones elsewhere. Default CoetID (commercial-entry type) Under **Advanced settings**. Pre-fills the entry type on every entry the agent submits. Default CurrIDTran (currency) Under **Advanced settings**. Pre-fills the currency on every entry the agent submits. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Galaxy ERP - Connect.** Choose **Cloud URL** or **Tunnel**, then enter the username and password. 2. If the agent will submit orders, open **Advanced settings** and set the default commercial-entry type and currency. 3. Press **Test connection**. When it succeeds, press **Connect**. Customers and items sync in the background every 15 minutes; **Sync now** on the connected card starts a sync immediately. 4. Open **My Agents** - the agent - **Skills - Tools & Workflows**. Turn on **Galaxy ERP**, press **Configure**, and under **Operations** select what the agent may do. Identify caller by phone is selected by default. If the agent will submit entries, set **Max sales doc value** and **Max sales doc lines**. **Save** the tool settings and **Save** the agent. 5. Call the agent from a phone number stored on a Galaxy customer. The agent should greet the customer by name. Ask about a product you stock and the agent should find it. If the greeting stays generic, open **Calls** and check the tool calls on that call. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | | Find the customer | Identify the caller by phone; look up by tax number (ΑΦΜ), customer code or company name; link the caller’s number to a customer for future calls | | Items | Search items by description, code or barcode; read one item’s current details from Galaxy | | Orders and documents | Submit a commercial entry; read back an entry the agent created, with its code, total and status | Submitting a commercial entry is a write operation: it works only when the operation is selected. New entries use the commercial-entry type and currency set under **Advanced settings** on the connection, so set those before you enable it. In the tool settings you can also have the agent load the caller’s recent commercial entries at call start. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and agent tool, step by step.→](/integrations/)[Galaxy Drugstore - the pharmacy edition.→](/integrations/erp/galaxy-drugstore/) [Soft1 ERP](/integrations/erp/soft1/) - [Entersoft ONE](/integrations/erp/entersoft-one/) - [Pylon ERP](/integrations/erp/pylon/) - other ERPs.
# Megasoft
> Connect Megasoft PRISMA Win so the agent identifies callers, reads balances, orders and stock, and places or cancels orders during a call.
With Megasoft connected, the agent greets a known caller by name, reads their balance, order status and purchase history, answers product questions with live price and stock, suggests alternatives when an item is unavailable, lists your shipping and payment methods, and can place or cancel an order while the caller is on the line. The connection uses the PRISMA Win eCommerce web service. Open **Integrations - Catalogue - Megasoft - Connect**. One connection is shared by the whole company; every agent that turns the Megasoft tool on uses it. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) Ask Megasoft or your PRISMA Win administrator for: * The **Site key** of your eCommerce web service. It identifies your company on the Megasoft service. * The web service username and password. * If the agent will take orders: the storage (warehouse) code, plus the series, payment, shipping, invoice, purpose and dispatch codes you want on phone orders. * Only if your company runs its own web service instead of the shared Megasoft one: its SOAP endpoint address. No tunnel is needed. By default Voice Logica talks to the Megasoft-hosted web service. ## What you enter [Section titled “What you enter”](#what-you-enter) Site keyREQUIRED From Megasoft. This is the value that is checked when you connect. UsernameREQUIRED The web service user. PasswordREQUIRED That user’s password. Under **Advanced settings**, all optional: SOAP endpoint URL Leave empty to use the shared Megasoft endpoint. Fill it only for a self-hosted service. Store name A name for this connection. Default storage code The warehouse used for orders and for live price and stock. Required before the agent can create orders. Default series (SeiraPar) Document series for phone orders. Default payment code Payment method applied to new orders. Default shipping description Shipping method applied to new orders. Default invoice code Document code (InvoiceCode) for new orders. Default purpose (SkoposDiak) Movement purpose, for example ΠΩΛΗΣΗ. Default dispatch place Loading place, for example ΕΔΡΑ ΜΑΣ. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Megasoft - Connect** Enter the Site key, username and password. Fill the order defaults under **Advanced settings** if the agent will take orders. 2. **Connect** Voice Logica checks the Site key with Megasoft before saving. The first sync of customers and products then runs in the background, and repeats daily. 3. **My Agents - your agent - Skills - Tools & Workflows** Turn **Megasoft** on. Under **Operations** keep **Identify caller by phone** and add the ones you need. Leave **Auto-identify caller on connect** on. Set **Max order lines** if you enable **Create order**. 4. **Save** the agent. 5. **Prove it** Wait a few minutes for the first sync, then call the agent from a phone number stored on a Megasoft customer. The agent should greet you by name. Ask “What is my balance?” and then ask whether a product you stock is available; you should hear the balance and the current stock. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Know who is calling | Identify caller by phone; look up customer by name or by customer code; link the caller’s number to the matched customer for future calls | | Account | Read the customer’s balance; list their orders; track an order’s status, voucher and shipping method; read item-level purchase history | | Products | Search products by name or code; read one product by code; live customer price and stock; live warehouse stock; alternative items; active offers and promotions | | Order options | List shipping methods and payment methods | | Change orders | Create order; cancel order | **Create order** and **Cancel order** write to Megasoft. They only run when you enable them under **Operations**. **Create order** uses the order defaults from the connection and needs **Default storage code** set. Orders with more lines than **Max order lines** are rejected. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the Megasoft tool is turned on.→](/agent-configuration/built-in-tools/) [Pylon](/integrations/erp/pylon/) · [Soft1](/integrations/erp/soft1/) · [SAP](/integrations/erp/sap/) - other ERP connections.
# Odoo ERP
> Connect Odoo so Voice Logica keeps a synced copy of your customers, products and balances for caller lookups and balance follow-up.
Connecting Odoo gives Voice Logica a synced copy of your Odoo customers, products, invoices and open balances. From that data you can look up a customer by phone or name, read balances and aged debt, search products, and build an outbound campaign that calls customers who owe money. The connection uses Odoo’s JSON-RPC API with an API key. Open **Integrations - Catalogue - Odoo ERP - Connect**. One connection is shared by the whole company. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * Your Odoo address (Odoo Online or your own server) and the database name. On Odoo Online the database is often the same as the subdomain. * A dedicated Odoo user for Voice Logica, with an API key created in Odoo under **Preferences - Account Security - New API Key**. Use the API key, not the user’s password. * The **Sales** app installed on that database. Voice Logica relies on it to tell customers apart from other contacts. * Odoo reachable from the internet over HTTP or HTTPS. Tunnel mode is not offered for this integration. ## What you enter [Section titled “What you enter”](#what-you-enter) Odoo URLREQUIRED The root address of your Odoo, without a trailing slash. DatabaseREQUIRED The Odoo database name. Username (login)REQUIRED The login of the dedicated Odoo user, usually an email address. API keyREQUIRED The key you created for that user. Under **Advanced settings**, all optional: Odoo company id Only for multi-company databases: the numeric id of the company to read from. Default country code30 Used to match phone numbers stored in Odoo to callers. Allow self-signed TLS certificate Turn on only for an on-prem server with its own certificate. ## First setup [Section titled “First setup”](#first-setup) 1. **In Odoo**, open the dedicated user’s **Preferences - Account Security** and create a **New API Key**. Copy it; Odoo shows it once. 2. **Integrations - Catalogue - Odoo ERP - Connect** Enter the URL, database, login and API key. 3. **Test connection** Voice Logica signs in to Odoo and checks that the Sales app is installed. 4. **Connect** The connection is saved and the first sync of customers, products, invoices and balances runs. After that, Odoo is re-synced daily and balances are refreshed every night. 5. **Prove it** In Claude or ChatGPT connected to Voice Logica, ask for the balance of one of your Odoo customers by name. You should get the amount Odoo shows for that customer. ## What the connection can do [Section titled “What the connection can do”](#what-the-connection-can-do) | Job | What is available | | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | Know who a customer is | Find a customer by phone or by name; link a phone number to a customer | | Account | Open balance; aged balance in 1-30, 31-60, 61-90 and 90+ day buckets | | Products | Search products by name, code or barcode | | Follow-up | Create an outbound campaign that calls customers above a balance or aging threshold, with name and balance passed to the agent | All of these are read-only towards Odoo. Nothing is written back. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Claude and ChatGPT - use the Odoo connection from your AI assistant.→](/integrations/claude-chatgpt/) [SAP](/integrations/erp/sap/) · [Soft1](/integrations/erp/soft1/) - ERP connections with a phone agent tool.
# Pylon ERP
> Connect an Epsilon Net Pylon ERP through its Connectivity API so the agent can identify callers, search items, read balances and post sales orders during a call.
With Pylon connected, the agent recognises a customer by the number they call from, searches your items, reads the customer’s balance, and takes an order line by line before posting it to Pylon as a sales order. Open **Integrations - Catalogue - Pylon ERP - Connect**. One connection is shared by the whole company; each agent then decides which operations it may use. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) Pylon is reached through its Connectivity API. Your Pylon partner or administrator prepares it: * **The Connectivity API service is running.** It is enabled in Pylon Configurator under the daemons settings (“Connectivity API Json Service”). * **An API scenario** in Pylon (Οργάνωση - Συνδεσιμότητα - API). It gives you the API code, the application, the database alias, the user mapping, and the Script codes on its Scripts tab. * **Script codes** for customers and items (needed for caller recognition and item search), and optionally for balances and sales orders. * **The document series** (SeriesCode) for orders the agent creates, if it should differ from the scenario default. * **How Voice Logica reaches Pylon:** the address and port the service listens on, if reachable from the internet, or a **Tunnel** if Pylon is inside your network. A tunnel is a reverse connection from a small installer on your network to Voice Logica, so no firewall ports need to be opened. Tunnels are created under **AI Setup - Tunnels**, which only admins see; if you do not see it, ask Voice Logica support to create one. ## What you enter [Section titled “What you enter”](#what-you-enter) Cloud URL / TunnelREQUIRED Pick one. For Cloud, enter the address and port of the Connectivity API service. For Tunnel, pick an active tunnel. API codeREQUIRED From the API scenario. ApplicationREQUIRED From the API scenario. Database aliasREQUIRED The Pylon database the scenario uses. UsernameREQUIRED The Pylon user mapped in the scenario. PasswordREQUIRED Stored encrypted. Customers entity code Script code that returns customers. Needed for caller recognition. Items entity code Script code that returns items. Needed for item search. Balances entity code Script code that returns customer balances. Needed for balance answers. Sales-order entity code Script code that posts a sales order. Pre-filled with `SalesOrders`. Sales-order series (SeriesCode) Document series for orders the agent creates, for example `ΠΑΡΠ`. Leave empty to use the scenario default. Allow self-signed TLS certificate Turn on only for a server with a private certificate. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Pylon ERP - Connect.** Choose **Cloud URL** or **Tunnel**, enter the scenario details and the user, then the Script codes. 2. Press **Connect**. Pylon has no separate connection test; the login is checked when you connect. Customers and items sync in the background every 15 minutes. **Sync now** and **Balances** on the connected card start a sync immediately. 3. To change a Script code or the series later, use **Edit** on the connected card. Leave the password empty to keep the stored one. Do not disconnect to change settings: disconnecting deletes the synced data. 4. Open **My Agents** - the agent - **Skills - Tools & Workflows**. Turn on **Pylon ERP**, press **Configure**, and under **Operations** select what the agent may do. Identify caller by phone is selected by default. For order taking, select the add and remove order line operations together with create sales order. Set **Max order value** and **Max order lines**, **Save** the tool settings and **Save** the agent. 5. Call the agent from a phone number stored on a Pylon customer. The agent should greet the customer by name. Ask for your balance and the agent should read it back. If the greeting stays generic, open **Calls** and check the tool calls on that call. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | | Find the customer | Identify the caller by phone; look up by tax number (ΑΦΜ), customer code or name; link the caller’s number to a customer for future calls | | Items | Search items by name, code or barcode; the customer’s previous purchases with last price and date | | Balances | The customer’s outstanding balance | | Orders | List the customer’s delivery branches; add or remove items in the order during the call; post the order to Pylon as a sales order | Posting an order is a write operation: it works only when it is selected, and it uses the sales-order Script code and series from the connection. Previous purchases and delivery branches need Script codes that are not in the connect dialog; ask Voice Logica support to add them. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and agent tool, step by step.→](/integrations/) [Soft1 ERP](/integrations/erp/soft1/) - [Entersoft ONE](/integrations/erp/entersoft-one/) - [Galaxy ERP](/integrations/erp/galaxy-erp/) - other ERPs.
# SAP ERP
> Connect SAP S/4HANA or SAP Business One so the agent identifies callers, searches products, reads sales orders and places new ones during a call.
With SAP connected, the agent greets a known caller by name, finds their customer record by phone, ΑΦΜ, customer number or name, searches your materials, reads their recent sales orders and the status of a specific order, and can post a new sales order while the caller is on the line. One connector covers both **SAP S/4HANA** (OData APIs, Cloud or on-prem) and **SAP Business One** (Service Layer). Open **Integrations - Catalogue - SAP ERP - Connect**. One connection is shared by the whole company; every agent that turns the SAP tool on uses it. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) Ask your SAP administrator or SAP partner for the following, depending on your product. **S/4HANA Cloud** * A communication arrangement that exposes the business partner, product and sales order OData APIs (API\_BUSINESS\_PARTNER, API\_PRODUCT\_SRV, API\_SALES\_ORDER\_SRV). * Either the communication user and password from that arrangement, or an OAuth 2.0 client-credentials set: client ID, client secret and token URL. * The API host of your tenant. **S/4HANA on-prem (or ECC with Gateway)** * The same three OData services activated on the Gateway. * A service user with OData authorisations, and the SAP client number (for example 100). **Business One** * The Service Layer address (usually on port 50000). * The company database name (CompanyDB). * A B1 user with rights to Business Partners, Items and Sales Orders on that company. **Network.** If SAP answers on a public HTTPS address, use **Cloud URL**. If it only runs inside your office network, it is reached through a Voice Logica tunnel: a small relay service installed on a machine in your network (Windows or Linux installer) that forwards requests to the SAP host and port. Ask Voice Logica support to set the tunnel up; once it is active it appears in the **Tunnel** list of the dialog. ## What you enter [Section titled “What you enter”](#what-you-enter) SAP productREQUIRED **S/4HANA (OData)** or **Business One (Service Layer)**. The fields below change with this choice. Cloud URL / TunnelREQUIRED Pick how Voice Logica reaches SAP. Base URLREQUIRED Cloud only. The S/4HANA API host or on-prem Gateway host, or the Business One Service Layer root. No trailing slash. TunnelREQUIRED Tunnel only. The active tunnel that points at your SAP server. Company database (CompanyDB)REQUIRED Business One only. The company schema name as it appears in B1. Authentication S/4HANA only. **Basic (communication user)** or **OAuth2 (client credentials)**. Business One always uses user and password. Username / PasswordREQUIRED Basic authentication and Business One. The communication, service or B1 user described above. Client ID / Client secret / Token URLREQUIRED S/4HANA with OAuth2 only. All three come from the communication arrangement. SAP client (optional) S/4HANA on-prem only. Leave empty on S/4HANA Cloud. Under **Advanced settings**, all optional: Language (optional) S/4HANA: language of product descriptions and of remarks on orders the agent creates. Phone country code30 Used to match the caller’s number to the phones stored in SAP. Trust self-signed TLS certificate (on-prem HTTPS) Turn on only for an on-prem server with its own certificate. Sales order type / Sales organization / Distribution channel / Division S/4HANA only. The organisational data stamped on orders the agent creates. Sales organization, distribution channel and division are needed before the agent can create orders. Price list number (optional) Business One only. The price list used when the agent quotes prices. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - SAP ERP - Connect** Pick the SAP product, then **Cloud URL** or **Tunnel**, and fill the credentials for that combination. Fill the sales order defaults under **Advanced settings** if the agent will take orders. 2. **Test connection** Voice Logica signs in and reads one customer. Fix any error before you continue. 3. **Connect** The connection is saved and the first sync of customers and products starts. After that, SAP is re-synced every hour. 4. **My Agents - your agent - Skills - Tools & Workflows** Turn **SAP ERP** on. Under **Operations** keep **Identify caller by phone** and add the ones you need. Leave **Auto-identify caller on connect** on so the caller is looked up before the agent speaks. Set **Max sales order value** and **Max sales order lines** if you enable **Create sales order**. 5. **Save** the agent. 6. **Prove it** Call the agent from a phone number stored on an SAP customer. The agent should greet you by the customer name. Ask “What is the status of my last order?” and you should hear the most recent sales order with its date and status. Then ask for a product by name and check the agent finds it. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | ------------------------ | ---------------------------------------------------------------------------------------------------------- | | Know who is calling | Identify caller by phone; look up customer by ΑΦΜ, by customer number (CardCode) or by name | | Answer product questions | Search products by name, code or barcode | | Orders | List the customer’s recent sales orders; read one order with lines, quantities and delivery status | | Account | Read the customer’s open balance (Business One; S/4HANA does not return a balance through this connection) | | Take an order | Create sales order | **Pre-fetch recent orders on call start** loads the identified caller’s latest orders before the agent speaks. **Create sales order** writes to SAP. It only runs when you enable it under **Operations**. On S/4HANA it also needs the sales organization, distribution channel and division set in the connection. Orders above **Max sales order value** or with more lines than **Max sales order lines** are rejected and the agent tells the caller. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the SAP tool is turned on.→](/agent-configuration/built-in-tools/) [Soft1](/integrations/erp/soft1/) · [Entersoft ONE](/integrations/erp/entersoft-one/) · [Odoo](/integrations/erp/odoo/) - other ERP connections.
# Soft1 ERP
> Connect a SoftOne (Soft1) ERP so the agent can identify callers, read balances and history, and create orders and other sales documents during a call.
With Soft1 connected, the agent recognises a customer by the number they call from, searches your item catalogue, reads the customer’s balance, aging and recent transactions, and can register an order (Δελτίο Παραγγελίας), invoice, delivery note or receipt in Soft1. It can also log the call, schedule a meeting or create a follow-up task in Soft1 CRM. Open **Integrations - Catalogue - Soft1 ERP - Connect**. One connection is shared by the whole company; each agent then decides which Soft1 operations it may use. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * **A Soft1 Web Account** (username and password) created by your Soft1 partner or administrator. The licence must include the **Web Service Connector** module and have a free web-service licence for this account. * **The App id** of that Web Account. Many installs use `2001`; your Soft1 partner can confirm it. * **How Voice Logica reaches Soft1:** * **Cloud URL** if Soft1 is reachable from the internet. This is the Web Services address, for example `https://yourcompany.oncloud.gr/s1services`. * **Tunnel** if Soft1 runs on a server inside your office network. A tunnel is a reverse connection from a small installer on your network to Voice Logica, so no firewall ports need to be opened. Tunnels are created under **AI Setup - Tunnels**, which only admins see. If you do not see it, ask Voice Logica support to create the tunnel and send you the installer. ## What you enter [Section titled “What you enter”](#what-you-enter) The dialog has three steps: credentials, then the company to connect, then a review with optional SQL Scripts. **Step 1 - credentials** Cloud URL / TunnelREQUIRED Pick one. For Cloud, enter the Soft1 Web Services URL. For Tunnel, pick an active tunnel from the list. UsernameREQUIRED The Web Account username. PasswordREQUIRED The Web Account password. Stored encrypted. App idREQUIRED The App id of the Web Account. Allow self-signed TLS certificate Turn on only for an on-premises server whose certificate is not issued by a public authority. **Step 2 - company and branch.** Voice Logica reads which company, branch, module and reference user the Web Account may use and lists them. Pick one. If the account has access to only one, this step is skipped. **Step 3 - review.** Check the endpoint, company and branch. **Show advanced options** opens the optional SQL Script slots. **Detect SQL scripts** lists the scripts your Soft1 install exposes and pre-selects the likely match for each slot; if the Web Account cannot read that list, you type the script codes instead. Customers delta script Faster customer sync. Without it the customer sync still runs through the standard API. Items delta script Faster item sync. Customer balances script Balance and aging per customer. Customer history script Needed for the transaction history operation. Customer top-items script Needed for “the items this customer buys most often”. Item sales aggregates script Adds sales totals to items, used for best-seller answers. Contacts script (B2B caller-ID) Adds the contact persons of each customer, so an employee of a business customer is recognised when they call. Sales document template Optional template used when the agent creates a sales document. e-Invoice template Optional template used when issuing an electronic invoice. Leave a slot empty if you have no script for it. The connected card shows under **AI-managed configuration** which method each capability uses after each sync. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Soft1 ERP - Connect.** Choose **Cloud URL** or **Tunnel**, enter the Web Account details and press **Continue**. 2. Pick the company and branch, then **Continue**. 3. On the review step press **Test connection**. When it succeeds, press **Connect**. The first sync of customers and items starts in the background; after that it runs every 15 minutes, and balances update nightly. **Sync now** on the connected card starts a sync immediately. 4. If the agent will create documents, open the connected card and press **Configure**. Press **Auto-configure**, then check the Soft1 series chosen for each document type (Order, Invoice, Delivery note, Receipt, and the CRM call, meeting and task). Pick an active series for every type the agent will create. 5. Open **My Agents** - the agent - **Skills - Tools & Workflows**. Turn on **Soft1 ERP**, press **Configure**, and under **Operations** select what the agent may do. Identify caller by phone is selected by default, together with the three project operations. Set **Max sales doc value** and **Max sales doc lines** if the agent will create documents, then **Save** the tool settings and **Save** the agent. 6. Call the agent from a phone number stored on a Soft1 customer (PHONE01 or PHONE02, or a contact person if you set the Contacts script). The agent should greet the customer by name. Ask “What is my balance?” and the agent should read back the outstanding amount. If the greeting stays generic, open **Calls** and check the tool calls on that call. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) Each operation is a separate checkbox under **Operations**. Write operations change data in Soft1, so enable only those you need. | Job | Operations | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Find the customer | Identify the caller by phone; look up by tax number (ΑΦΜ), customer code or company name; link the caller’s number to a customer for future calls | | Customer records | Create a new customer; add or remove one of the customer’s two phone numbers | | Items | Search the catalogue by name, code, barcode or supplier; the customer’s most-bought items; the overall best sellers | | Balances | Outstanding balance; aging in 1-30 / 31-60 / 61-90 / 90+ day buckets; transaction history between two dates | | Orders and documents | List the customer’s open orders or fetch one by its key; create or amend an order, invoice, delivery note, receipt or generic sales document; add or remove lines, change quantities, set shipping details; transmit an issued document to myDATA | | CRM activity | Log the call, schedule a meeting, create a follow-up task, read the customer’s recent activities; list, create and read Soft1 projects | Write operations work only when they are selected and a Soft1 series is set for that document type under **Configure**. The tool settings also include a pre-fetch of the caller’s recent orders at call start, shipping details on sales documents, permission to amend documents older than 24 hours, a template for call-log notes, and extra SALDOC columns the agent must fill. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and agent tool, step by step.→](/integrations/) [Entersoft ONE](/integrations/erp/entersoft-one/) - [Galaxy ERP](/integrations/erp/galaxy-erp/) - [Pylon ERP](/integrations/erp/pylon/) - other ERPs.
# GonnaOrder
> Connect a GonnaOrder store so the agent takes phone orders from your menu, checks delivery zones and fees, books tables and texts card-payment links.
With GonnaOrder connected, the agent works like a phone order desk for your store: it finds items on your menu with their price and availability, checks whether the caller’s address is inside a delivery zone and what the fee and minimum order are, offers delivery or pickup times, submits the order to GonnaOrder, and can text the caller a card-payment link. It also recognises returning customers, repeats “the usual”, reports order status and books tables. **Integrations - Catalogue - GonnaOrder - Connect** opens the connect dialog. One connection is shared by every agent in the company. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * The **store owner login** for GonnaOrder (e-mail and password). It is used once to generate an API key for Voice Logica and is not stored. If you already have a GonnaOrder API key, you can use that instead. * The **store alias**: the subdomain of your ordering page. For `myshop.point2order.gr` the alias is `myshop`. ## What you enter [Section titled “What you enter”](#what-you-enter) The dialog needs a store (**Store alias** or **Store id**) and a way in (**Username** and **Password**, or an **API key**). Store alias The subdomain of the store. Needed unless you give a **Store id**. Username The store owner’s GonnaOrder e-mail. Needed unless you give an **API key**. Password Used once to generate the API key, then discarded. Under **Advanced settings** (all optional): API key (instead of username / password) An existing GonnaOrder API key. Store id Only when you have no alias. Ignored if the alias is found. Environment **Production** for live stores. **Development** is for GonnaOrder test stores. Admin host override Leave empty. Production tries the GonnaOrder host and then the Greek point2order host automatically. Default delivery method for phone orders **Delivery to an address**, **Pickup** or **In-store (table / room)**. Default payment category `LATER_CASH` (cash on delivery) unless you set another GonnaOrder payment category. Payment return URL Where the caller lands after paying by link. Empty means the store front page. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - GonnaOrder - Connect**, enter the alias, e-mail and password, **Test connection**, then **Connect**. GonnaOrder appears under **Connected** and the menu and customer list start copying straight away. 2. Open **My Agents**, pick the agent, then **Skills - Tools & Workflows**. Turn on **GonnaOrder** and click **Configure**. 3. Pick the operations. **Search menu** is on by default. For delivery orders add **Check delivery address**, **Delivery / pickup times** and **Place order**. Add **Identify caller by phone** and **Customer’s past orders** so regulars can repeat an order, and **Order status** for “where is my food” calls. Add **Book a table** if you take reservations. 4. To accept card payments, add **Send payment link** and also turn on **Send SMS** on the same agent: the link is sent by text message. The agent never takes card details on the call. 5. Optionally set **Max order lines**. Leave it empty for no limit. 6. Click **Save** in the settings window, then **Save** the agent. 7. Call the agent (or use **Try this agent**) and order two items from your menu for delivery to an address in your zone. The agent should confirm prices, the delivery fee and a time, then submit the order. Check that it appears in GonnaOrder. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | What happens on the call | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Menu questions | Finds items by name and reads back price and availability. | | Delivery checks | Says whether the address is inside a delivery zone, with the fee and minimum order, and lists available delivery or pickup times. | | Take an order | Builds and submits the order in one step, including the delivery-zone check. | | Payment | Creates a card-payment link for the order and sends it by SMS. | | Returning customers | Recognises the caller by phone (or by name), knows their saved address and can repeat a past order. **Pre-fetch recent orders on call start** loads recent orders before the agent speaks. | | After the order | Reports the status and total of an existing order. | | Tables | Creates a table reservation at the store. | The menu is refreshed every 30 minutes, so sold-out items and switched-off specials reach the agent during service. Customers are refreshed daily. **Sync now** on the GonnaOrder card under **Connected** refreshes both immediately. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the GonnaOrder and Send SMS tools are switched on.→](/agent-configuration/built-in-tools/) [WooCommerce](/integrations/eshops/woocommerce/) - [Shopify](/integrations/eshops/shopify/) - for retail stores.
# Magento
> Connect a Magento (Adobe Commerce) store so the agent recognises callers, looks up their orders, searches products and can place orders during a call.
With Magento (Adobe Commerce) connected, the agent recognises a customer from the number they call from, finds an order by the order number the customer reads out, answers product questions by name or SKU, estimates shipping for an address and, if you allow it, places the order in the store for the identified customer or as a guest. **Integrations - Catalogue - Magento - Connect** opens the connect dialog. One connection is shared by every agent in the company. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) An Integration in the Magento admin: 1. **System - Extensions - Integrations - Add New Integration**. Name it `Voice Logica`. 2. Under **API**, give it access to Customers, Sales and Catalog. Placing orders goes through the Magento cart, so allow cart access too if the agent will take orders. 3. **Save**, then **Activate**. Magento shows four values: Consumer Key, Consumer Secret, Access Token and Access Token Secret. Copy all four. This OAuth 1.0a method works on every Magento 2.4 release and does not expire. A single bearer / integration token is also accepted, but Magento 2.4.4 and later reject integration tokens used that way unless the store’s OAuth settings allow it. ## What you enter [Section titled “What you enter”](#what-you-enter) Store URLREQUIRED The store’s base address with `https://`, no trailing slash, for example `https://myshop.example`. Store name Display name for the connection. Optional. Store view code For multi-store setups. Leave empty for the default store view. AuthenticationREQUIRED **OAuth 1.0a (4 keys)** or **Bearer / integration token**. Consumer keyREQUIRED OAuth 1.0a only. Consumer secretREQUIRED OAuth 1.0a only. Access tokenREQUIRED OAuth 1.0a only. Access token secretREQUIRED OAuth 1.0a only. Bearer / integration tokenREQUIRED Bearer / integration token only. **Connect** checks the credentials against the store before saving. There is no separate test button. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Magento - Connect**, fill the store URL and the four keys, **Connect**. Magento appears under **Connected** and customers and products start copying in the background. 2. Open **My Agents**, pick the agent, then **Skills - Tools & Workflows**. Turn on **Magento** and click **Configure**. 3. Pick the operations. **Identify caller by phone** is on by default. Add **Get orders by customer**, **Get order by id** and **Search products** for order and product questions. Add **List shipping options** and **Create order** only if the agent should take orders, and set **Max order lines**. 4. Click **Save** in the settings window, then **Save** the agent. 5. Call the agent from a phone number saved on a Magento customer (or use **Try this agent**). Ask “Can you check order 000000123?” with a real order number from your store. The agent should read back its status and items. Then ask for a product by name or SKU. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | What happens on the call | | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Recognise the caller | Matches the caller’s number to a Magento customer. Can also find a customer by name or email and remember the number for next time. | | Order questions | Reads the caller’s recent orders, or one order by the order number the customer sees. **Pre-fetch recent orders on call start** loads them before the agent speaks. | | Product questions | Searches by name or SKU and reads one product’s details. | | Take an order | Estimates shipping methods and rates for an address, then places the order through the cart for the identified customer or a guest. Shipping and payment methods are chosen from those the store offers for that order. | Customers and products are refreshed daily. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the Magento tool is switched on.→](/agent-configuration/built-in-tools/) [WooCommerce](/integrations/eshops/woocommerce/) - [Shopify](/integrations/eshops/shopify/) - other store platforms.
# OpenCart
> Connect an OpenCart store so the agent recognises callers, reads their orders, searches products and can place orders during a call.
With OpenCart connected, the agent recognises a customer from the number they call from, reads back their recent orders and order status, answers product questions (optionally narrowed to a manufacturer) and, if you allow it, creates the order in the store. **Integrations - Catalogue - OpenCart - Connect** opens the connect dialog. One connection is shared by every agent in the company. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) OpenCart needs a REST extension and an API user. With the recommended Dreamvention REST Admin extension: 1. Install **Dreamvention REST Admin**, then **Extensions - Modifications - Refresh**. 2. **System - Users - API - Add new**: a username such as `voicelogica`, status **Enabled**, click **Generate** for the API key, **Save**, and copy the key. 3. Under **IP addresses** on the same API user, add the Voice Logica server IP. An empty list is only suitable for testing. 4. **System - Users - User Groups**: allow `extension/dreamvention_rest_admin/*`, plus Access and Modify on `catalog/product`, `catalog/manufacturer`, `customer/customer` and `sale/order`. ## What you enter [Section titled “What you enter”](#what-you-enter) Store URLREQUIRED The storefront root with `https://`, without `/admin` and without a trailing slash. API usernameREQUIRED The username of the API user. API keyREQUIRED The key generated for that user. API dialect Which REST extension the store uses: `dreamvention` (default and recommended), `journal` or `native`. Store name Display name for the connection. Optional. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - OpenCart - Connect**, fill the fields, **Test connection**, then **Connect**. OpenCart appears under **Connected** and customers and products start copying in the background. 2. Open **My Agents**, pick the agent, then **Skills - Tools & Workflows**. Turn on **OpenCart** and click **Configure**. 3. Pick the operations. **Identify caller by phone** is on by default. Add **Get orders by customer** and **Search products** for order and product questions. Add **Create order** only if the agent should take orders, and set **Max order value** and **Max order lines**. **Custom order attributes** collected by the agent are added to the order comment. 4. Click **Save** in the settings window, then **Save** the agent. 5. Call the agent from a phone number saved on an OpenCart customer (or use **Try this agent**). Ask “Has my last order shipped?”. The agent should greet you by name and read back the order status. Then ask for a product by name. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | What happens on the call | | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Recognise the caller | Matches the caller’s number to an OpenCart customer. Can also find a customer by name or email and remember the number for next time. | | Order questions | Reads the caller’s recent orders or one order: status, totals, items. **Pre-fetch recent orders on call start** loads the last 10 orders before the agent speaks. | | Product questions | Searches the catalogue, optionally by manufacturer, and reads one product’s details. | | Take an order | Creates the order in OpenCart within the limits you set. | Customers and products are refreshed daily. **Sync now** on the OpenCart card under **Connected** refreshes them immediately. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the OpenCart tool is switched on.→](/agent-configuration/built-in-tools/) [PrestaShop](/integrations/eshops/prestashop/) - [XML product feed](/integrations/eshops/xml-feed/) - for stores on other platforms.
# PrestaShop
> Connect a PrestaShop store so the agent recognises callers, reads and updates order status and answers product questions during a call.
With PrestaShop connected, the agent recognises a customer from the number they call from, reads back their recent orders, answers product questions by name or reference, and, if you allow it, moves an existing order to another status (for example from awaiting payment to payment accepted). **Integrations - Catalogue - PrestaShop - Connect** opens the connect dialog. One connection is shared by every agent in the company. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) A Webservice key from the PrestaShop back office: 1. **Advanced Parameters - Webservice**, and enable the webservice. 2. **Add new webservice key**. Generate the key and give it permissions on `customers`, `addresses`, `products`, `orders`, `order_states` and `order_histories`. Read access covers lookups; the agent needs write access on `orders` and `order_histories` to create orders or change their status. 3. Save and copy the key. ## What you enter [Section titled “What you enter”](#what-you-enter) Store URLREQUIRED The shop address with `https://`, for example `https://myshop.example`. Webservice API keyREQUIRED The key created above. Store name Display name for the connection. Optional. Default language id The PrestaShop language id used for product names. Usually `1`, the shop’s default language. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - PrestaShop - Connect**, fill the fields, **Test connection**, then **Connect**. PrestaShop appears under **Connected** and customers and products start copying in the background. 2. Open **My Agents**, pick the agent, then **Skills - Tools & Workflows**. Turn on **PrestaShop** and click **Configure**. 3. Pick the operations. **Identify caller by phone** is on by default. Add **Get orders by customer** and **Search products** for order and product questions. To let the agent change an order’s status, add **Update order status** together with **List order states**, so it only picks a status your shop has. Leave **Create order** off unless you have read the limitation under Troubleshooting. 4. Click **Save** in the settings window, then **Save** the agent. 5. Call the agent from a phone number saved on a PrestaShop customer address (or use **Try this agent**). Ask “What’s happening with my last order?”. The agent should greet you by name and read back the order status. Then ask for a product by name. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | What happens on the call | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Recognise the caller | Matches the caller’s number to a PrestaShop customer. Can also find a customer by name or email and remember the number for next time. | | Order questions | Reads the caller’s recent orders or one order: status, totals, items. **Pre-fetch recent orders on call start** loads the last 10 orders before the agent speaks. | | Order status changes | Reads the shop’s list of order states and moves an order to one of them. | | Product questions | Searches by name or reference and reads one product’s details. | | Create an order | Limited: PrestaShop accepts it only for a cart that already exists (see Troubleshooting). Your **Max order value**, **Max order lines** and **Custom order attributes** apply. | Customers and products are refreshed daily. **Sync now** on the PrestaShop card under **Connected** refreshes them immediately. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the PrestaShop tool is switched on.→](/agent-configuration/built-in-tools/) [OpenCart](/integrations/eshops/opencart/) - [XML product feed](/integrations/eshops/xml-feed/) - for stores on other platforms.
# Shopify
> Connect a Shopify store so the agent recognises callers, reads their orders, answers product questions and can create orders or draft orders during a call.
With Shopify connected, the agent recognises a customer from the number they call from, reads back their recent orders and order status, answers questions about your products, quotes your shipping rates and, if you allow it, creates an order or an unpaid draft order for you to review. **Integrations - Catalogue - Shopify - Connect** opens the connect dialog. One connection is shared by every agent in the company. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) The dialog offers two ways in. Use the first unless you have a reason not to. * **Install via Shopify (recommended).** You only need the shop’s `myshopify.com` domain and a Shopify login that can install apps. Shopify shows its own approval screen; nothing has to be created in the store first. * **Access token.** For stores that prefer a custom app. In the store admin open **Settings - Apps and sales channels - Develop apps**, click **Allow legacy custom app development**, then **Create an app** (name it `Voice Logica`). Under **Configuration - Admin API integration - Configure** enable `read_customers`, `write_customers`, `read_orders`, `write_orders`, `read_products`, `write_products` and `read_shipping` (needed when the agent creates delivery orders), then **Save**. On **API credentials** click **Install app** and copy the **Admin API access token** (`shpat_…`). Shopify shows the token only once. Create the custom app in the store admin, not in the Shopify Dev Dashboard or Partners dashboard. Those give a Client ID and a `shpss_…` secret, which the token form does not accept. ## What you enter [Section titled “What you enter”](#what-you-enter) For **Install via Shopify**: Shop domainREQUIRED For example `myshop.myshopify.com`. The part before `.myshopify.com` is enough. Client ID Only under **Use your own Shopify app credentials**, when you were asked to connect through your own Shopify app. Leave empty to use the Voice Logica app. Client secret Same section. Client ID and Client secret are entered together or not at all. For the access token form: Shop domainREQUIRED The `myshopify.com` domain shown in the admin address. Admin API access tokenREQUIRED The `shpat_…` token from **API credentials**. API secret key From the same tab. Lets Shopify notify Voice Logica of store changes; without it the scheduled sync still runs. API version Pre-filled. Change it only if Shopify has retired that version. Store name Display name for the connection. Optional. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Shopify - Connect**. Enter the **Shop domain** and click **Install via Shopify**. Approve the app in the Shopify window that opens. If you use a token instead, fill the form, click **Test connection**, then **Connect**. 2. Shopify appears under **Connected**. Customers and products start copying in the background straight away. 3. Open **My Agents**, pick the agent, then **Skills - Tools & Workflows**. Turn on **Shopify** and click **Configure**. 4. Pick the operations. **Identify caller by phone** is on by default. Add **Get orders by customer** and **Search products** for order and product questions. To take orders add **Create order**, **Create draft order** or both (with both, the agent drafts quotes and unconfirmed orders and creates a real order only when the caller commits). Add **List shipping options** or **Pre-load shipping rates into the system prompt**, because Shopify does not calculate shipping on orders created through the API. 5. If the agent can create orders, set **Max order value** and **Max order lines**. Use **Custom order attributes** for extra details the agent must collect; they appear on the Shopify order as order attributes. 6. Click **Save** in the settings window, then **Save** the agent. 7. Call the agent from a phone number saved on a Shopify customer (or use **Try this agent**). Ask “What’s the status of my last order?”. The agent should greet you by name and read back the order status. Then ask about a product by name. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | What happens on the call | | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Recognise the caller | Matches the caller’s number to a Shopify customer. Can also find a customer by name or email and remember the number for next time. | | Order questions | Reads the caller’s recent orders or a single order: status, items, payment state. **Pre-fetch recent orders on call start** loads the last 10 orders before the agent speaks. | | Product questions | Searches by title, tag or product type and reads one product’s details. | | Take an order | Quotes shipping rates, then creates an order or an unpaid draft order (no stock reserved, no payment taken) within your limits. | Customers and products are refreshed daily. On the Shopify card under **Connected**, **Sync now** refreshes them immediately and **Sync to Skroutz** rebuilds the product list the agent searches. Nothing is published to the Skroutz marketplace. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the Shopify tool is switched on.→](/agent-configuration/built-in-tools/) [WooCommerce](/integrations/eshops/woocommerce/) - [XML product feed](/integrations/eshops/xml-feed/) - for stores on other platforms.
# WooCommerce
> Connect a WooCommerce store so the agent recognises callers, reads their orders, searches products and can place orders during a call.
With WooCommerce connected, the agent knows who is calling before it speaks (it matches the caller’s number against your store customers and order billing phones), reads back the status of their recent orders, answers questions about products from your catalogue and, if you allow it, places a new order in the store. **Integrations - Catalogue - WooCommerce - Connect** opens the connect dialog. One connection is shared by every agent in the company. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) A REST API key from the WordPress admin of the store: 1. **WooCommerce - Settings - Advanced - REST API - Add key**. 2. Description `Voice Logica`, User an administrator, Permissions **Read/Write**. Read-only is enough if the agent will never place orders. 3. **Generate API key** and copy both values straight away. WooCommerce shows the secret only once. The store must run WooCommerce 3.5 or later with pretty permalinks, and the REST API must be reachable over HTTPS with a valid certificate (self-signed certificates are rejected). If the site sits behind Cloudflare or another firewall, allow Voice Logica’s requests through. ## What you enter [Section titled “What you enter”](#what-you-enter) Store URLREQUIRED The public address of the shop, including `https://`, for example `https://myshop.example`. Consumer keyREQUIRED Starts with `ck_`. Consumer secretREQUIRED Starts with `cs_`. Store name Display name for the connection. Optional. There is no separate test step. **Connect** checks the URL and keys against the store before saving and refuses them if the store does not answer. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - WooCommerce - Connect**, paste the three values, **Connect**. WooCommerce moves to the **Connected** tab. 2. Open **My Agents**, pick the agent, then **Skills - Tools & Workflows**. Turn on **WooCommerce**. 3. Click **Configure** on the WooCommerce card and pick the operations. **Identify caller by phone** is on by default. For order questions add **Get orders by customer**; for product questions add **Search products**. Add **Create order** only if the agent should take orders, and then also **List shipping options** or **Pre-load shipping methods into the system prompt**, because WooCommerce does not work out shipping on orders created through the API. 4. If you allow **Create order**, set **Max order value** and **Max order lines**. Orders above either limit are refused before they reach the store. Use **Custom order attributes** for extra details the agent must collect (for example a doorbell name); they are saved on the order and visible in the WordPress order page. 5. Click **Save** in the settings window, then **Save** the agent. 6. Call the agent from a phone number that appears on a customer or a past order in the shop (or use **Try this agent**). Ask “Where is my last order?”. The agent should use the customer’s name and read back the order status. Then ask for a product by name and check that it answers from your catalogue. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | What happens on the call | | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Recognise the caller | Matches the caller’s number to a customer, falling back to the billing phone on past orders (guest checkouts included). Can also find a customer by name or email, and remember the number for next time. | | Order questions | Reads the caller’s recent orders, or one order by its number: status, items, totals. **Pre-fetch recent orders on call start** loads the last 10 orders before the agent speaks. | | Product questions | Searches the catalogue by name, SKU or slug and reads one product’s details. | | Take an order | Lists shipping methods and creates the order in WooCommerce, within the limits you set. | The product catalogue is copied to Voice Logica and refreshed daily, so searches are fast. **Sync now** on the WooCommerce card under **Connected** pulls the full catalogue again immediately. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the WooCommerce tool is switched on.→](/agent-configuration/built-in-tools/) [Shopify](/integrations/eshops/shopify/) - [XML product feed](/integrations/eshops/xml-feed/) - for stores on other platforms.
# XML product feed
> Give the agent your product catalogue from a Skroutz or Google Merchant XML feed so it can answer product and availability questions on any shop platform.
The XML product feed gives the agent your catalogue when your shop runs on a platform without a native connector, or when product questions are all you need. Voice Logica reads the same XML feed you publish for Skroutz, refreshes it on a schedule, and the agent searches it during the call: a caller asks for a product in their own words and the agent tells them the name, a short description and whether it is in stock. The feed is catalogue-only. It does not recognise callers, read orders or place orders; for that, use [WooCommerce](/integrations/eshops/woocommerce/), [Shopify](/integrations/eshops/shopify/), [Magento](/integrations/eshops/magento/), [OpenCart](/integrations/eshops/opencart/) or [PrestaShop](/integrations/eshops/prestashop/). There is no Catalogue card and nothing to connect under **Integrations**. The feed is set on the agent itself: **My Agents - agent - Skills - Tools & Workflows - Eshop Integration (XML feed)**. Each agent that should answer product questions gets its own feed settings. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) A product feed URL in the Skroutz XML format (developer.skroutz.gr/el/feedspec/) or the Google Merchant format. Most Greek shop platforms and Skroutz or Google Shopping plugins already generate one. The URL must be reachable from the internet without a login or IP restriction, and must return XML (gzip or zip is fine), not a JSON or HTML page. ## Supported feed formats [Section titled “Supported feed formats”](#supported-feed-formats) | Layout | Example | | -------------------------------- | ------------------------------------------------------------------------------------------- | | Skroutz, under any root name | `` (also `webstore`, `store`, `storedata` or any other root) | | Products list at the root | `` | | Products directly under the root | `` or a single `` | | Google Merchant (RSS) | `- ` with `g:` tags such as ``, `` | | Atom | `` | The fields the agent uses, per product. The name in brackets is the accepted alternative, and Google `g:` tags work as they are: | Field | Used for | | ------------------------------------------ | -------------------------------------------------------- | | `id` (`g:id`) | Identifies the product between refreshes | | `name` (`title`) | What the agent reads out | | `link` | The product page | | `price_with_vat` (`price`) | The price | | `availability` (`instock` Y/N, `quantity`) | Whether it is in stock | | `description` | Matching loosely worded requests | | `category` (`product_type`) | Narrowing the search | | `manufacturer` (`brand`) | Brand questions | | `mpn`, `ean` (`gtin`), `sku` | Codes callers read out, see **Product identifier field** | | `image` (`image_link`) | Product image | Any other tags in a product are kept as extra product data. ## What you enter [Section titled “What you enter”](#what-you-enter) Feed URLREQUIRED The full address of the XML feed, starting with `https://` or `http://`, for example `https://myshop.example/feeds/products.xml`. Refresh interval How often the catalogue is re-read, from 30 minutes to 7 days. Default 1 day. Product identifier field The product code the agent matches when a caller reads one out: **MPN** (default), **EAN**, **SKU**, **Skroutz ID**, **Group Code** or **None**. Pick the code your customers see. AI-enhanced product vectors Off by default. When on, the agent can match loosely worded requests to products using their descriptions. Results are only as good as your descriptions. Vector field Shown when the option above is on. The feed field the matching is built from. Feed supports incremental sync Turn on only if your feed accepts a `?modifiedSince=` parameter. Otherwise every refresh reads the whole catalogue, which is the safe default. ## First setup [Section titled “First setup”](#first-setup) 1. Open **My Agents**, pick the agent, then **Skills - Tools & Workflows**. 2. Turn on **Eshop Integration (XML feed)** and click **Configure**. 3. Paste the **Feed URL**, choose the **Refresh interval** and the **Product identifier field**, and click **Save** in the settings window. 4. **Save** the agent. The feed can only be synced or viewed after the agent is saved. 5. Click **Sync now** on the card to read the feed straight away instead of waiting for the first scheduled refresh. Give it a few minutes, then click **View products** to confirm your products are there. 6. Call the agent (or use **Try this agent**) and ask for a product the way a customer would, for example “Do you have a smart kettle?”. The agent should name matching products from your feed and say whether they are available. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | What happens on the call | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Product questions | Searches the catalogue as soon as the caller mentions a product or reads out a product code, trying several spellings and the English term at once, and reads back name, short description and availability. | | Follow-up questions | Searches again when the caller narrows the request (“a smart one”, “in black”). | | Alternatives | Suggests similar products only when the caller asks for alternatives. | ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - how company connections and agent tools fit together.→](/integrations/)[Tools & Workflows - where this tool lives.→](/agent-configuration/built-in-tools/) [WooCommerce](/integrations/eshops/woocommerce/) - [Shopify](/integrations/eshops/shopify/) - when you also need caller recognition and orders.
# Google
**Integrations - Connected - Google Workspace** is how this company authorizes Google for calendar, contacts, Drive, Sheets, and mail. Catalogue also lists **Google Meet** and **Google Chat** as separate **Authorize** cards. Status can show **Not connected** until you click **Connect Google**.  google-connectedExpand ## What you enable [Section titled “What you enable”](#what-you-enable) Scopes are toggles on the Google Workspace card. Turning a new scope on may require re-authorization. Book meetings May require the Calendar plan feature. Recognise callers Match phone numbers to contacts. Save recordings to Drive Agents can add recordings but cannot see existing files. Answer from Drive files Agents can read files to answer questions. Use spreadsheets Look up data or write call results to a sheet. Send emails Agents can send mail but cannot read the inbox. **Connect Google** starts OAuth. **Set up Google Meet** / **Set up Google Chat** appear when those surfaces need extra setup. ## First setup [Section titled “First setup”](#first-setup) 1. Open **Integrations - Connected** (or browse Catalogue for Google Meet / Chat). 2. On **Google Workspace**, pick the scopes you need, then **Connect Google**. 3. Finish Google consent. Confirm status is connected. 4. Enable the matching agent tools (Schedule Appointment, Drive, Sheets, and so on) under **Tools & Workflows**, then save. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connect then agent tool.→](/integrations/)[HubSpot - CRM identify path.→](/integrations/hubspot/)
# Guesty
**Integrations - Catalogue - Guesty - Connect** opens **Connect Guesty** for property management (owners/guests, reservations, listings, house rules, conversations). One connection is shared by the whole company.  guesty-connectExpand ## What you enter [Section titled “What you enter”](#what-you-enter) From Guesty **Integrations - API / Webhooks**, create an Open API application, then paste: Client IDREQUIRED From the Guesty Open API application. Client secretREQUIRED Fetched token is cached automatically after connect. Base URL Shown when your Guesty environment needs a non-default host. Use **Test connection** before **Connect** when available. ## First setup [Section titled “First setup”](#first-setup) 1. Create the Open API app in Guesty and copy Client ID + secret. 2. **Catalogue - Guesty - Connect** - paste credentials - **Test connection** - **Connect**. 3. Enable the Guesty tool on the agent, save, then prove with a guest/owner call. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - then the agent tool.→](/integrations/)[Custom API - when Guesty is not the PMS.→](/integrations/custom-api/)
# Hosthub
> Connect Hosthub so the agent recognises guests by phone, finds their reservations, describes your rentals and quotes availability and nightly prices during a call.
With Hosthub connected, the agent recognises a guest whose phone number is on a reservation and already knows their booking when it answers. It can look up reservations by name, phone, email, dates or confirmation code, describe each rental (amenities, check-in and check-out times, house rules), and quote availability and nightly prices for given dates. The Hosthub connection is read-only: the agent does not create or change reservations. Open **Integrations - Catalogue - Hosthub - Connect**. One connection is shared by the whole company; every agent that turns the Hosthub tool on uses it. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) A Hosthub API key: 1. In Hosthub, open **Settings - API**. 2. Create a key with read access to reservations and rentals. 3. Copy the key. ## What you enter [Section titled “What you enter”](#what-you-enter) API keyREQUIRED The key from Hosthub. Base URL Under **Advanced settings**. Leave empty unless Hosthub gave you a different API address. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Hosthub - Connect** Paste the API key. 2. **Test connection** Voice Logica reads your rentals with the key. Fix any error before you continue. 3. **Connect** Your reservations are copied into Voice Logica straight away and refreshed once a day, so the agent can recognise a guest by phone without waiting on Hosthub. 4. **My Agents - your agent - Skills - Tools & Workflows** Turn **Hosthub** on. Under **Operations** keep **Identify caller by phone**, **Search reservations** and **Check availability & prices**, and add the others you need. Turn on **Identify the caller by phone on call start** so a known guest is recognised before the agent speaks. 5. **Save** the agent. 6. **Prove it** Call the agent from the phone number on an upcoming reservation. The agent should know the guest’s name and stay dates. Then ask “Is the apartment free for three nights next month, and how much is it?” and check that the dates and prices match Hosthub. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | --------------------- | ----------------------------------------------------------------------------------------------------------------- | | Know who is calling | Identify caller by phone, against the guest’s reservations | | Find a booking | Search reservations by guest name, phone, email, dates or rental; get reservation by its id or confirmation code | | Describe your rentals | List rentals / properties; get rental details (amenities, check-in and check-out times, house rules, description) | | Quote a stay | Check availability & prices per night for a rental and date range | Reservation lookups use the copy synced from Hosthub. Rentals, availability and prices are read live from Hosthub on every question. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the Hosthub tool is turned on.→](/agent-configuration/built-in-tools/) [Guesty](/integrations/guesty/) · [WebHotelier](/integrations/hospitality/webhotelier/) - other hospitality connections.
# WebHotelier
> Connect your WebHotelier booking engine so the agent quotes live room availability and rates, finds guests' reservations and creates or cancels bookings during a call.
With WebHotelier connected, the agent answers “do you have a room for these dates” with live availability and prices, explains room types, rate plans, extras and special offers, finds a guest’s reservation by last name or email, and can make or cancel a booking while the caller is on the line. Everything is read live from WebHotelier; nothing is copied into Voice Logica. Open **Integrations - Catalogue - WebHotelier - Connect**. One connection is shared by the whole company; every agent that turns the WebHotelier tool on uses it. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * **API access on the hotel’s WebHotelier account.** The hotel requests it from WebHotelier support. You then use the account’s username and password. * **The property code** of the hotel, as WebHotelier knows it. * **IP whitelisting, if WebHotelier applies it.** WebHotelier may only accept API requests from known addresses. Ask Voice Logica support for the server IP address and ask WebHotelier to allow it. ## What you enter [Section titled “What you enter”](#what-you-enter) UsernameREQUIRED The WebHotelier account username with API access. PasswordREQUIRED The password of that account. Property code The default hotel the agent works on. Enter it for a single-property account. On a multi-property account you can leave it empty: **Connect** then lists the hotels’ codes so you can enter the default one. Under **Advanced settings**, all optional: Base URL Leave empty unless WebHotelier gave you a different API address. Property name The hotel name the agent uses. Currency For example EUR. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - WebHotelier - Connect** Enter the username, password and property code. 2. **Test connection** Voice Logica signs in to WebHotelier with these details. Fix any error before you continue. 3. **Connect** 4. **My Agents - your agent - Skills - Tools & Workflows** Turn **WebHotelier** on. Under **Operations** keep **Check availability** and add the ones you need, for example **Search bookings**, **Get reservation** and **Get property info**. Add **Create booking** and **Cancel booking** only if the agent should change reservations. If this agent serves a different hotel on the same account, enter it in **Property code (optional)**. 5. **Save** the agent. 6. **Prove it** Call the agent and ask “Do you have a double room for two adults next weekend?” You should hear the available room types with prices. Then ask about an existing reservation, giving the guest’s last name, and check that the agent reads back the dates and status. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) | Job | Operations | | ----------------------------- | ------------------------------------------------------------------------------------------------------------- | | Quote a stay | Check availability; availability calendar day by day; best available rate | | Describe the hotel | Get property info; get rooms; get rates (board, cancellation and payment policies); get extras; search offers | | Find a guest’s booking | Search bookings by last name or email; get reservation by its reference code | | Change bookings | Create booking; cancel booking; resend confirmation email | | Several hotels on one account | Search properties; multi-property availability | WebHotelier does not search by phone number, so the agent identifies guests by last name, email or reservation code rather than by caller ID. **Create booking**, **Cancel booking** and **Resend confirmation** act on real reservations. They only run when you select them under **Operations**. Bookings the agent creates are pay at the hotel; the agent never takes card details on the call. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connection, then the agent tool.→](/integrations/)[Tools & Workflows - where the WebHotelier tool is turned on.→](/agent-configuration/built-in-tools/) [Hosthub](/integrations/hospitality/hosthub/) · [Guesty](/integrations/guesty/) - vacation rentals.
# HubSpot
**Integrations - Catalogue - HubSpot - Authorize** connects this company to HubSpot over OAuth. Then turn the **HubSpot** tool on under the agent’s **Skills - Tools & Workflows**.  hubspot-oauthExpand ## First setup [Section titled “First setup”](#first-setup) 1. **Catalogue - HubSpot - Authorize** (card tags include Caller ID / Leads when shown). 2. On HubSpot, **Sign in to your HubSpot account** (or create one), then approve access. 3. Confirm **Connected** shows HubSpot as working. 4. Agent - **Tools & Workflows** - enable **HubSpot**, save. 5. Call from a contact phone that exists in HubSpot. Open **Calls** if the greeting stays generic. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - company connect then agent tool.→](/integrations/)[Zoho CRM - the other common CRM path.→](/integrations/zoho-crm/)[Custom API - when HubSpot is not the system of record.→](/integrations/custom-api/)
# AI Assistants
Two different directions: 1. **Integrations - AI Assistants** - Claude / ChatGPT calling *your* Voice Logica agents (company MCP / assistant setup). See [Claude and ChatGPT](/integrations/claude-chatgpt/). 2. **Agent - Skills - Tools & Workflows - MCP servers** - *this* agent calling a remote MCP server during a call. Most walkthroughs that say “add MCP” mean the agent-side **MCP servers** card. Empty state: **No MCP servers yet. Add an MCP server so this agent can call its tools during a call.** Button: **+ Add MCP** / **Add MCP**.  mcp-emptyExpand ## Add an MCP server (agent) [Section titled “Add an MCP server (agent)”](#add-an-mcp-server-agent) **Add MCP**: *Add the server first. If it uses OAuth you will be redirected to connect, then come back here to choose tools.* Server name Label for this agent. Server URL https\://… Transport e.g. **Streamable HTTP**. Auth e.g. **OAuth** or bearer when shown. Then **Continue**, finish OAuth if prompted, pick tools, enable, save the agent.  mcp-addExpand ## First setup [Section titled “First setup”](#first-setup) 1. Open the agent - **Tools & Workflows** - **MCP servers** - **Add MCP**. 2. Enter name, URL, transport, auth - **Continue**. 3. Complete OAuth if required, pick tools, enable. 4. Save the agent. Prove on a call that names one of those tools. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Tools & Workflows - built-in tools beside MCP.→](/agent-configuration/built-in-tools/)[Get an integration working - CRM / catalogue connectors.→](/integrations/)
# OpenAI Dots
> Give your OpenAI Dot your phone calls: connect Voice Logica once and the Dot follows up on calls, missed callers and your team around the clock.
**Dots** are OpenAI’s always-on agents in ChatGPT (launched 29 September 2026). A Dot works on your goals in the background, connects to apps through ChatGPT plugins, and talks to you in ChatGPT, Slack or Microsoft Teams. Voice Logica gives a Dot what it cannot see on its own: **your phone calls**. Connect the Voice Logica plugin once and the Dot can read every call your AI agent, your team and the Noema app handle, act on them, and keep doing it while you are busy. ## What a Dot can do with your calls [Section titled “What a Dot can do with your calls”](#what-a-dot-can-do-with-your-calls) A chat with ChatGPT answers when you ask. A Dot keeps a goal and comes back with the work done. Goals that fit Voice Logica: | Give your Dot this goal | What it does in Voice Logica | | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | | *“Every morning at 9:00, send me yesterday’s calls in Slack: who called, what they wanted, what is still open.”* | Reads calls and their summaries (`get_calls`, `get_call_statistics`) and posts the digest. | | *“When someone calls and the agent could not help, open a task for the right colleague.”* | Finds calls that ended in a transfer or without an answer and creates a task (`create_task`) with the caller and the reason. | | *“Call back every missed caller within the hour, between 09:00 and 18:00.”* | Starts the call with your agent (`initiate_call`) and reports the result. | | *“Keep our contacts up to date from the calls.”* | Adds or updates the caller’s name, company and notes (`create_or_update_contact`). | | *“Every Friday, tell me which questions callers asked that the agent did not know.”* | Lists the unanswered questions (`knowledge_query`) and offers to add the answers to the agent’s knowledge. | | *“Watch our campaign and pause it if fewer than 1 in 10 calls are answered.”* | Reads the campaign results and pauses or resumes it (`campaigns_execute`). | | *“Tell me in Teams when a support ticket gets a reply.”* | Reads your Voice Logica tickets (`tickets_query`) and answers them with you. | | *“Each Monday, show how each colleague handled calls last week.”* | Reads calls per user and your team (`team_query`) and compares them. | The Dot works as **you**, with your role’s permissions, on your company only. Anything that changes live behaviour or costs money (a callback, a new campaign, a prompt change, a plan) it confirms with you first, unless you tell it otherwise for that goal. ## Connect Voice Logica to your Dot [Section titled “Connect Voice Logica to your Dot”](#connect-voice-logica-to-your-dot) Your Dot uses the plugins installed in your ChatGPT. Add Voice Logica there once, the same way as for a ChatGPT chat. 1. In ChatGPT open **Settings - Security and login** and turn on **Developer mode**. On Business and Enterprise workspaces an admin may have to allow custom plugins first. 2. Open **[New plugin in ChatGPT](https://chatgpt.com/plugins#settings/Connectors?create-connector=true\&redirectAfter=%2Fplugins)** and **Upload plugin**: [download the Voice Logica plugin](/downloads/voice-logica-plugin.zip) (.zip), drop it in the window, then **Add plugin**. It brings the server URL and our skills. Or click **Create MCP App**, name it **Voice Logica**, paste the server URL and keep **Authentication** on **OAuth**:
```text
https://api.voicelogica.ai/api/v1/mcp
```
3. Sign in with your Voice Logica account and allow access. No account yet? The sign-in window creates one and builds your first agent from your website. 4. Turn **Voice Logica** on for your Dot, then give it a first goal: *“Which Voice Logica agents do I have, and how many calls did they take this week?”* The full connection guide, with screenshots and troubleshooting, is on [Claude and ChatGPT](/integrations/claude-chatgpt/). ## Upload our documentation to your Dot [Section titled “Upload our documentation to your Dot”](#upload-our-documentation-to-your-dot) The plugin lets the Dot **act**. The documentation lets it **know** how Voice Logica works: how transfers, campaigns, workflows and the phone apps behave, and how to explain them to your team. A Dot reads the files you keep in **ChatGPT Space**, so put the guides there. 1 **Download the guides you need.** Each file is one area of the documentation, small enough to read whole. 2 **Upload them to ChatGPT Space** - your own space, or the team space your Dot works in. 3 **Tell your Dot to use them:** *“Use the Voice Logica guides in our Space when you answer questions about our calls and phones.”* | File | Upload it when your Dot should | | -------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | | [getting-started.txt](https://docs.voicelogica.ai/_llms-txt/getting-started.txt) | explain plans, sign-up and the first agent | | [agent-configuration.txt](https://docs.voicelogica.ai/_llms-txt/agent-configuration.txt) | change prompts, voices, recording and call results | | [telephony.txt](https://docs.voicelogica.ai/_llms-txt/telephony.txt) | help with numbers, transfers, users, softphones and the Noema app | | [integrations.txt](https://docs.voicelogica.ai/_llms-txt/integrations.txt) | work with your CRM, calendar, e-shop and the AI assistants | | [workflows.txt](https://docs.voicelogica.ai/_llms-txt/workflows.txt) | build or fix workflows | | [outbound-calls.txt](https://docs.voicelogica.ai/_llms-txt/outbound-calls.txt) | run campaigns and scheduled calls | | [help-and-troubleshooting.txt](https://docs.voicelogica.ai/_llms-txt/help-and-troubleshooting.txt) | answer “why did this call end?” and similar questions | The documentation changes as the product does. Ask your Dot to replace the files once a month, or give it the index instead of files: `https://docs.voicelogica.ai/llms.txt` lists every guide, and every page is also plain markdown at `https://docs.voicelogica.ai/raw/.md`. ### Guides for your team [Section titled “Guides for your team”](#guides-for-your-team) Your colleagues ask the Dot too: *“how do I transfer a call to Maria?”*, *“why can’t I hear the caller in the softphone?”*. Upload [telephony.txt](https://docs.voicelogica.ai/_llms-txt/telephony.txt) and [help-and-troubleshooting.txt](https://docs.voicelogica.ai/_llms-txt/help-and-troubleshooting.txt) to the team space, and the Dot answers them from our guides, in Slack or Teams, with a link to the page. ## Good to know [Section titled “Good to know”](#good-to-know) * **It cannot see more than you.** The Dot uses your sign-in. To give it the whole team’s calls, connect it with an admin account. To keep it to your own calls, connect it with yours. * **Recordings stay with us.** The Dot reads summaries and transcripts and gets a link to a recording; the audio stays in Voice Logica, hosted in the EU. * **Turn it off at any time.** **Integrations - AI Assistants - ChatGPT - Disconnect** blocks every ChatGPT connection, Dots included. Removing the plugin in ChatGPT does the same. * **Several companies?** A Dot works on one company at a time. Ask it to switch when you need another. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Claude and ChatGPT - connecting step by step, and the security model.→](/integrations/claude-chatgpt/)[Claude for your calls and your team - the same requests, asked in a chat.→](/integrations/claude-calls-and-team/)[What you can ask - every request the assistant understands, by area.→](/integrations/what-you-can-ask/)[Noema Mobile plan - your own mobile calls, summarised.→](/telephony/noema-mobile-plan/)
# ACS Courier
> Connect your ACS Courier web service account so the agent can tell callers where their ACS parcel is.
ACS Courier lets the agent answer “where is my parcel?” on the phone. The caller says the voucher number, the agent reads it back, looks it up in ACS and tells the caller the current status, the last stops of the parcel and, once it is delivered, when and to whom. Open **Integrations - Catalogue - ACS Courier - Connect**. One connection is shared by the whole company. Then turn on the **Courier** tool on each agent that should track parcels. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * An ACS Courier customer account with web service (API) access. ACS enables it on request. Ask your ACS contact for API access for your company account. * From ACS: an API key, your Company ID and Company password, and a User ID and User password. ## What you enter [Section titled “What you enter”](#what-you-enter) API keyREQUIRED The ACS web service API key. Company IDREQUIRED Your ACS company account ID. Company passwordREQUIRED The password of the company account. User IDREQUIRED The ACS user the lookups run as. User passwordREQUIRED That user’s password. Language **Greek** (default) or **English**. The language of the status texts ACS returns when the agent does not ask for one. **Test connection** checks the credentials against ACS. Use it before **Connect**. ## First setup [Section titled “First setup”](#first-setup) 1. **Get API access from ACS** Ask ACS to enable web service access for your account and send you the API key and the company and user credentials. 2. **Connect ACS Courier** **Integrations - Catalogue - ACS Courier - Connect**. Fill in all five credentials, pick the **Language**, then **Test connection** and **Connect**. 3. **Turn on the Courier tool** **My Agents - agent - Skills - Tools & Workflows** - turn on **Courier**. **Track voucher** is on by default. **Save**. 4. **Prove it** Call the agent with a real ACS voucher from a recent shipment. Say the number. The agent reads it back digit by digit, then tells you the status and where the parcel was last scanned. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) * Track an ACS voucher: current status, whether it is delivered, delivery time and recipient, and the last five checkpoints with place and time. * Read the voucher back to the caller before the lookup, so a wrong digit does not track someone else’s parcel. * Find the parcel even when the caller does not say which courier sent it. The agent tries every courier the company has connected, starting with the ones you set up yourself, such as ACS, and then the always-on couriers. The same lookup is available in workflows through the **Courier — Track Voucher** node. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and the agent tool.→](/integrations/)[Geniki Taxydromiki - tracking plus delivery rescheduling.→](/integrations/payments-logistics/geniki-taxydromiki/)[Speedex - always on, no credentials.→](/integrations/payments-logistics/speedex/)
# BOX NOW
> Connect your BOX NOW API account so the agent can tell callers where their locker parcel is.
BOX NOW lets the agent answer “is my parcel in the locker yet?” on the phone. The caller says the parcel number, the agent reads it back, looks it up in BOX NOW and tells the caller the current status and the latest events. Open **Integrations - Catalogue - BOX NOW - Connect**. One connection is shared by the whole company. Then turn on the **Courier** tool on each agent that should track parcels. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A BOX NOW partner account with API access. * From the BOX NOW developer portal: an API Client ID and Client secret. ## What you enter [Section titled “What you enter”](#what-you-enter) Client IDREQUIRED The BOX NOW API Client ID. Client secretREQUIRED The matching Client secret. It is stored encrypted. API URL Leave empty for BOX NOW’s production API. Fill it only when BOX NOW gives you a different address, for example a test environment. **Test connection** signs in to BOX NOW with these credentials. Use it before **Connect**. ## First setup [Section titled “First setup”](#first-setup) 1. **Get the API credentials** In the BOX NOW developer portal, copy your Client ID and Client secret. 2. **Connect BOX NOW** **Integrations - Catalogue - BOX NOW - Connect**. Paste both values, then **Test connection** and **Connect**. 3. **Turn on the Courier tool** **My Agents - agent - Skills - Tools & Workflows** - turn on **Courier**. **Track voucher** is on by default. **Save**. 4. **Prove it** Call the agent with the number of a recent BOX NOW parcel. The agent reads it back digit by digit, then tells you the status. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) * Track a BOX NOW parcel: current status, whether it is already waiting in the destination locker for pickup, whether it is delivered, and the latest events with time and place. * Read the parcel number back before the lookup. * Find the parcel without being told the courier. The agent tries every courier the company has connected. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and the agent tool.→](/integrations/)[Skroutz Last Mile - orders sold through Skroutz.→](/integrations/payments-logistics/skroutz-last-mile/)[ACS Courier - door-to-door deliveries.→](/integrations/payments-logistics/acs-courier/)
# ELTA Courier
> ELTA Courier tracking is always on: turn on the Courier tool and the agent can tell callers where their ELTA Courier parcel is.
ELTA Courier lets the agent answer “where is my parcel?” for ELTA Courier shipments. The caller says the voucher number, the agent reads it back and tells the caller the current status and the last stops of the parcel. ELTA Courier is **always on**. It uses ELTA Courier’s public tracking, so there are no credentials and nothing to connect. The **Integrations - Catalogue** card shows **Always on** instead of a **Connect** button, and every company has it. All you do is turn on the **Courier** tool on the agent. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * Nothing from ELTA Courier. A voucher number from a recent ELTA Courier shipment is useful for the test call. ## First setup [Section titled “First setup”](#first-setup) 1. **Turn on the Courier tool** **My Agents - agent - Skills - Tools & Workflows** - turn on **Courier**. **Track voucher** is on by default. **Save**. 2. **Prove it** Call the agent and say an ELTA Courier voucher number. The agent reads it back digit by digit, then tells you the status and where the parcel was last scanned. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) * Track an ELTA Courier voucher: current status, whether it is delivered, and the latest checkpoints with place and time. * Read the voucher back before the lookup. * Find the parcel without being told the courier. The agent first tries the couriers you connected with credentials, then the always-on ones (Speedex, ELTA Courier, Taxydema). Results for the same voucher are kept for five minutes, so a status can be up to five minutes old. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and the agent tool.→](/integrations/)[Speedex - also always on.→](/integrations/payments-logistics/speedex/)[Taxydema - also always on.→](/integrations/payments-logistics/taxydema/)
# Geniki Taxydromiki
> Connect your Geniki Taxydromiki web service account so the agent can track vouchers and reschedule deliveries on a call.
Geniki Taxydromiki lets the agent track a parcel and, if you allow it, move its delivery to another day. The caller says the voucher number, the agent reads it back and tells the caller the status. When the caller will not be home, the agent can book a new delivery date and time window with Geniki during the same call. Open **Integrations - Catalogue - Geniki Taxydromiki - Connect**. One connection is shared by the whole company. Then turn on the **Courier** tool on each agent that should handle parcels. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A Geniki Taxydromiki customer account with web service access. Geniki enables it on request. * From Geniki: a web service username, password and application key. ## What you enter [Section titled “What you enter”](#what-you-enter) UsernameREQUIRED The Geniki web service username. PasswordREQUIRED The Geniki web service password. Application keyREQUIRED The application key Geniki issued with your web service access. Base URL Leave empty for Geniki’s production service. Fill it only when Geniki gives you a different address, for example their test service. **Test connection** signs in to Geniki with these credentials. Use it before **Connect**. ## First setup [Section titled “First setup”](#first-setup) 1. **Get web service access from Geniki** Ask Geniki Taxydromiki for web service credentials for your account: username, password and application key. 2. **Connect Geniki Taxydromiki** **Integrations - Catalogue - Geniki Taxydromiki - Connect**. Fill in the three credentials, then **Test connection** and **Connect**. 3. **Turn on the Courier tool** **My Agents - agent - Skills - Tools & Workflows** - turn on **Courier**. **Track voucher** is on by default. Turn on **Reschedule delivery** too if the agent should move deliveries. **Save**. 4. **Prove tracking** Call the agent with a recent Geniki voucher. The agent reads it back digit by digit, then tells you the status and the last checkpoints. 5. **Prove rescheduling** On the same call, say you will not be home and ask for another day. The agent asks for the date and the time of day, repeats both with the voucher, and books the change after you confirm. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) * Track a Geniki voucher: current status, whether it is delivered, delivery details and the last five checkpoints. * Reschedule a delivery to a new date in one of four time windows: morning, late morning, afternoon or evening. If the parcel already has a rescheduled delivery, the agent updates it. * Confirm before it acts: it reads the voucher back digit by digit and repeats the new date and time window before booking. * Find the parcel without being told the courier. The agent tries every courier the company has connected. Rescheduling works only for Geniki Taxydromiki. For other couriers the agent can track but not move a delivery. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and the agent tool.→](/integrations/)[ACS Courier - the other credential-based courier.→](/integrations/payments-logistics/acs-courier/)[BOX NOW - parcel lockers.→](/integrations/payments-logistics/boxnow/)
# Bus timetable (GTFS)
> Load your bus network into the Timetable editor so the agent can answer departure times, connections and fares on a call.
The bus timetable gives the agent your stops, lines, departures and fares, so it can answer questions such as “is there a bus from the port to the village on Sunday?” or “what is the last bus back?”. The agent says only the times in your timetable. It never guesses a departure. Open **Integrations - Catalogue - GTFS - Connect**. There are no credentials: Connect turns the timetable on for the company and opens the **Timetable** editor. Later, open it from the GTFS card on **Connected**. One timetable is shared by the whole company. Then turn on the **Fleet management** tool on each agent that should answer bus questions. The editor keeps a draft and a published copy. Calls use only the published copy. Nothing you import or edit reaches callers until you press **Publish**. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * Your timetable: a GTFS zip if your operator already has one, or the stops, lines, departure times and fares to type in. * The names callers actually use for each stop, such as the village name, the square or “the port”. These become spoken aliases. * The date ranges when the schedule changes (summer, winter) and the public holidays you run a Sunday or no service on. ## What you enter [Section titled “What you enter”](#what-you-enter) The timetable has no credentials. The **Network details** on the **Network** tab describe the operator: Agency The operator’s name, for example your ΚΤΕΛ. Agency website Your public website. Google Maps needs it if you publish the feed there. Hub city The main town of the network. **Find stops on the map** uses it to place stops that have no position. Timezone The timezone of the departure times. “Today” and “the next bus” on a call are worked out in this timezone. The rest of the timetable lives on the editor’s tabs: **Stops**, **Lines** (with each line’s **Departures**), **Seasons** and **Holidays**. ## First setup [Section titled “First setup”](#first-setup) 1. **Turn on the timetable** **Integrations - Catalogue - GTFS - Connect**. The **Timetable** editor opens on **Network**. 2. **Load the network** With a GTFS zip, use **Import GTFS zip** on **Network**. The zip replaces the draft and calls keep the last published copy. Without a zip, fill in **Network details** and build the network by hand in the next steps. 3. **Check the stops** On **Stops**, add any missing stop with **Add stop** and add **Spoken aliases** for the names callers use. Group stops under an **Area**. Mark a large area, such as a whole district, as a **Wide area**: when a caller names it, the agent lists its stops and asks which one. Every stop needs a position on the map. Open a line, then **Stop positions** - **Find stops on the map**, or place a single stop by hand. 4. **Check the lines** On **Lines**, open each line or create one with **New line**. Put the stops in order and set **Boarding** for each stop, the minutes from the first stop and the **Fare** from the first stop. **Return line** creates the reverse line, without fares. Then open **Departures** and add every start time with its days and season. 5. **Set seasons and holidays** On **Seasons**, add the date ranges when the schedule changes. Departures without a season run all year. On **Holidays**, use **Add Greek holidays** for the year and set **Runs as** to the schedule those days follow (usually Sunday) or to **No buses**. 6. **Fix the issues, then publish** On **Network**, work through **Issues**: missing times, times that go backwards, lines without departures, a season that has ended. Then press **Publish**. Calls now use this timetable. 7. **Turn on the agent tool** **My Agents - agent - Skills - Tools & Workflows** - turn on **Fleet management**. Turn on **Load stops when the call starts** if callers usually name a stop right away; leave it off for a large network. Turn on **Send SMS** too if the agent should text the route link. **Save**. 8. **Prove it** Call the agent and ask for a bus between two stops on a named day. The agent gives the departure and arrival times from your published timetable, the fare when you set one, and offers to text you the route map. After every later change, press **Publish** again. While there are unpublished changes, the editor says so and offers **Publish** or **Discard changes**. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) * Find a stop from the name the caller uses, including spoken aliases, and ask which stop when a wide area matches several. * Give the departures between two stops for a date: for today only buses still to leave, for another day the whole day, with arrival times. * Tell the caller the next bus first and the last bus of the day. * Quote the fare between two stops when the line has fares, and say when it has none rather than borrow another fare. * Plan a trip with one change when there is no direct bus: where to get off, where to change and which bus to take next. * Look ahead up to 21 days when there is no bus on the asked day, and say so plainly when there is none. * Apply your holidays: on a holiday it uses the schedule you set under **Runs as**. * Send a public link with the route on a map, every pass time and the fare, by SMS during a call or in the reply in chat. The agent has no ferry or train schedules. If a caller names a ferry time, it compares that with the bus arrival time only. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and the agent tool.→](/integrations/)[Tools & Workflows - turning tools on per agent.→](/agent-configuration/built-in-tools/)[Viva.com - payment links by SMS.→](/integrations/payments-logistics/viva/)
# Skroutz Last Mile
> Connect your Skroutz merchant API token so the agent can tell callers the delivery status of an order sold through Skroutz.
Skroutz Last Mile lets the agent answer “where is my Skroutz order?” on the phone. Skroutz tracks deliveries per order, not per voucher. The caller gives the Skroutz order code, the agent looks it up through the Skroutz merchant API and tells the caller the order’s delivery state, the courier that carries it and that courier’s tracking codes. Open **Integrations - Catalogue - Skroutz Last Mile - Connect**. One connection is shared by the whole company. Then turn on the **Courier** tool on each agent that should track orders. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A Skroutz merchant account that sells with Skroutz Last Mile. * A Skroutz merchant API token with Last Mile access. Skroutz enables it for your account on request. ## What you enter [Section titled “What you enter”](#what-you-enter) API tokenREQUIRED Your Skroutz merchant API token. It is stored encrypted. **Test connection** checks the token against your Skroutz order list. Use it before **Connect**. ## First setup [Section titled “First setup”](#first-setup) 1. **Get the API token** Ask Skroutz to enable Last Mile API access for your merchant account and copy the API token. 2. **Connect Skroutz Last Mile** **Integrations - Catalogue - Skroutz Last Mile - Connect**. Paste the token, then **Test connection** and **Connect**. 3. **Turn on the Courier tool** **My Agents - agent - Skills - Tools & Workflows** - turn on **Courier**. **Track voucher** is on by default. **Save**. 4. **Tell the agent what to ask for** Callers often have a courier voucher in hand, not the Skroutz order code. In the agent’s instructions, say that for Skroutz orders the agent asks for the Skroutz order code. 5. **Prove it** Call the agent and give the code of a recent Skroutz order. The agent tells you the delivery state and which courier has the parcel. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) * Look up a Skroutz order by its order code and give its delivery state, including whether it is delivered. * Name the courier that carries the order and read its tracking codes, so the caller can follow up with that courier. * Find the order without being told the courier. The agent tries every courier the company has connected, Skroutz Last Mile included. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and the agent tool.→](/integrations/)[BOX NOW - parcel lockers.→](/integrations/payments-logistics/boxnow/)[ACS Courier - track the courier voucher directly.→](/integrations/payments-logistics/acs-courier/)
# Speedex
> Speedex tracking is always on: turn on the Courier tool and the agent can tell callers where their Speedex parcel is.
Speedex lets the agent answer “where is my parcel?” for Speedex shipments. The caller says the voucher number, the agent reads it back and tells the caller the current status and the last stops of the parcel. Speedex is **always on**. It uses Speedex’s public tracking, so there are no credentials and nothing to connect. The **Integrations - Catalogue** card shows **Always on** instead of a **Connect** button, and every company has it. All you do is turn on the **Courier** tool on the agent. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * Nothing from Speedex. A Speedex voucher number from a recent shipment is useful for the test call. ## First setup [Section titled “First setup”](#first-setup) 1. **Turn on the Courier tool** **My Agents - agent - Skills - Tools & Workflows** - turn on **Courier**. **Track voucher** is on by default. **Save**. 2. **Prove it** Call the agent and say a Speedex voucher number. The agent reads it back digit by digit, then tells you the status and where the parcel was last scanned. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) * Track a Speedex voucher: current status, whether it is delivered, and the latest checkpoints with place and time. * Read the voucher back before the lookup. * Find the parcel without being told the courier. The agent first tries the couriers you connected with credentials, then the always-on ones (Speedex, ELTA Courier, Taxydema). Results for the same voucher are kept for five minutes, so a status can be up to five minutes old. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and the agent tool.→](/integrations/)[ELTA Courier - also always on.→](/integrations/payments-logistics/elta-courier/)[ACS Courier - when you also ship with ACS.→](/integrations/payments-logistics/acs-courier/)
# Taxydema
> Taxydema tracking is always on: turn on the Courier tool and the agent can tell callers where their Taxydema parcel is.
Taxydema (Ταχυδέμα) lets the agent answer “where is my parcel?” for Taxydema shipments. The caller says the voucher number, the agent reads it back and tells the caller the current status and the last stops of the parcel. Taxydema is **always on**. It uses Taxydema’s public tracking, so there are no credentials and nothing to connect. The **Integrations - Catalogue** card shows **Always on** instead of a **Connect** button, and every company has it. All you do is turn on the **Courier** tool on the agent. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * Nothing from Taxydema. A voucher number from a recent Taxydema shipment is useful for the test call. ## First setup [Section titled “First setup”](#first-setup) 1. **Turn on the Courier tool** **My Agents - agent - Skills - Tools & Workflows** - turn on **Courier**. **Track voucher** is on by default. **Save**. 2. **Prove it** Call the agent and say a Taxydema voucher number. The agent reads it back digit by digit, then tells you the status and where the parcel was last scanned. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) * Track a Taxydema voucher: current status, whether it is delivered, and the latest checkpoints with place and time. * Read the voucher back before the lookup. * Find the parcel without being told the courier. The agent first tries the couriers you connected with credentials, then the always-on ones (Speedex, ELTA Courier, Taxydema). Results for the same voucher are kept for five minutes, so a status can be up to five minutes old. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and the agent tool.→](/integrations/)[Speedex - also always on.→](/integrations/payments-logistics/speedex/)[ELTA Courier - also always on.→](/integrations/payments-logistics/elta-courier/)
# Viva.com
> Connect a Viva.com merchant account so a workflow can create a card-payment link during a call and text it to the caller.
Viva.com lets the agent take a payment without hearing a card number. While the call is running, a workflow creates a Viva.com Smart Checkout link for an amount in euros and sends it to the caller by SMS. The caller pays on Viva’s own page. Card details never pass through the call. Open **Integrations - Catalogue - Viva.com - Connect**. One connection is shared by the whole company. Every agent and workflow in the company uses the same Viva.com account. On a call, Viva.com works through the **Viva — Create Payment Link** workflow node. There is no separate Viva tool card on the agent. You build a short During-call workflow and attach it to the agent. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A Viva.com merchant account. For a first test, a Viva demo account is enough. * An OAuth 2.0 application in the Viva.com merchant portal, under **Settings - API Access**. It gives you a Client ID and a Client secret. * Optional: a Viva payment source code, if you want these links grouped under their own source in Viva. * SMS sending set up for the company, because the link reaches the caller by SMS. ## What you enter [Section titled “What you enter”](#what-you-enter) Client IDREQUIRED The OAuth 2.0 Client ID of the application you created under Settings - API Access. Client secretREQUIRED The matching Client secret. It is stored encrypted. EnvironmentREQUIRED **Live** for real payments, **Demo / sandbox** for tests. The credentials must come from the same environment you pick. Demo credentials do not work on Live, and Live credentials do not work on Demo. Source code The Viva source the links are created under. If you leave it empty, links use the account’s default source. ▶Account labelcollapsed by default Under **Advanced settings**. A name for the connected card, useful when you keep a demo and a live account apart. **Test connection** asks Viva.com for an access token with the credentials you typed. Use it before **Connect**. ## First setup [Section titled “First setup”](#first-setup) 1. **Create the API credentials in Viva.com** In the merchant portal, open **Settings - API Access**, create an OAuth 2.0 application and copy its Client ID and Client secret. Start with your demo account. 2. **Connect Viva.com** **Integrations - Catalogue - Viva.com - Connect**. Paste the Client ID and Client secret, set **Environment** to **Demo / sandbox**, then **Test connection** and **Connect**. 3. **Build the payment workflow** In **Workflows**, create a During-call workflow. Add the **Viva — Create Payment Link** node. Set **Amount (€)** to a fixed value or a variable from an earlier node, for example `{{node_3.order.total}}`. Set the **Description** the customer sees on the payment page. **Customer Phone** already holds `{{call.phone_number}}`. 4. **Send the link** Connect the node’s success branch to an SMS node and put `{{node_X.payment_url}}` in the message, where `X` is the Viva node’s number. Then add an AI response that tells the caller the link is on its way. Connect the failure branch to an AI response that offers another way to pay. 5. **Attach the workflow to the agent** **My Agents - agent - Skills - Tools & Workflows** - add the workflow under Business Workflows, then **Save**. 6. **Prove it** Call the agent and ask to pay. The SMS arrives with a Viva link. Open it and finish a payment with a Viva demo card. The order appears in your Viva demo account. 7. **Switch to Live** Create Live credentials in Viva.com, open the connected Viva.com card and reconnect with **Environment** set to **Live**. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) * Create a Viva.com payment link for an amount in euros. A comma decimal such as 25,50 is accepted. * Show the customer a description of what they are paying for on Viva’s page. * Open the payment page in Greek or English (the node’s **Language** setting). * Send the link by SMS or Viber through the next workflow node, so the caller pays on their phone after or during the call. * Pass the Viva order code to later nodes as `{{node_X.order_code}}`, for example to write it into a CRM note or an email. The link expires after Viva’s default timeout of 30 minutes. The agent does not learn whether the customer completed the payment. Check paid orders in your Viva.com account. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection and the agent side.→](/integrations/)[During-call workflows - how a workflow runs while the caller is on the line.→](/workflows/during-call/)[SMS node - sending the payment link.→](/workflow-nodes/sms/)
# Airtable
> Let the agent recognise callers from an Airtable table, search records and create or update rows during a call.
Airtable connects the agent to one table in one of your bases. The agent greets known callers by name, finds the right record while the caller waits, and adds or updates rows, for example a new enquiry or a changed address. **Integrations - Catalogue - Airtable - Connect** opens **Connect Airtable**. One connection is shared by the whole company. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * An Airtable personal access token. In Airtable go to **airtable.com/create/tokens**, create a token and give it the scopes `data.records:read`, `data.records:write` and `schema.bases:read` on the base you want. * A table with at least one column that holds phone numbers. Name and email columns help the agent greet and confirm callers. * Optional: a “Last modified time” field in the table, so updates sync faster. ## What you enter [Section titled “What you enter”](#what-you-enter) Personal access tokenREQUIRED Paste it and click **Test token**. The test loads the bases the token can reach. BaseREQUIRED The base that holds your table. TableREQUIRED The table the agent works with. Phone field(s)REQUIRED One or more columns with phone numbers. These are used to recognise callers. Name field The column with the person’s name. Email field The column with the email address. Last-modified field A “Last modified time” column. With it, only changed rows are synced. ## First setup [Section titled “First setup”](#first-setup) 1. Create the token in Airtable with the three scopes on your base. 2. **Integrations - Catalogue - Airtable - Connect**. Paste the token and click **Test token**. 3. Pick the **Base**, then the **Table**, then map the phone, name and email columns. Click **Connect**. 4. Open **My Agents - your agent - Skills - Tools & Workflows**, turn the **Airtable** tool on and open its settings. 5. Pick the operations. **Identify caller by phone** is ticked by default. Add **Create record** or **Update record** only if the agent should write to the table. Turn on **Auto-identify caller on connect** to look the caller up as soon as the call starts. 6. **Save** the agent. 7. Prove it: call from a phone number that exists in the table. The agent should know who you are. Then ask it to find a record by name. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) **Know the caller** * Recognise the caller by phone number and greet them by name. **Find records** * Search by free text across the mapped name, email and phone columns. * Open a record by its Airtable record id. **Write** (only the operations you enabled) * Create a new record in the connected table. * Update fields on an existing record, using the column names it saw in the table. Caller recognition uses a copy of the table that Voice Logica keeps in sync in the background. Searching, creating and updating go to Airtable directly. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection, then the agent tool.→](/integrations/)[ClickUp - task lists with caller recognition.→](/integrations/productivity/clickup/)[Custom API - when your data lives in another system.→](/integrations/custom-api/)
# Power BI / Looker Studio
> Send your call data to Power BI or Looker Studio dashboards through a read-only reporting feed.
Power BI / Looker Studio puts your calls into the dashboards your team already uses: call volume per agent, transfers, call length, feedback ratings and the fields your agents extract after each call. **Integrations - Catalogue - Power BI / Looker Studio - Connect** opens **Connect Power BI / Looker Studio**. The dialog creates one reporting key for the whole company. It does not add a tool to any agent. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A plan that includes API access. The reporting feed uses an API key, so plans without API access cannot read it. * For Looker Studio: a Google account. * For Power BI: Power BI Desktop. To refresh the data on a schedule, the Power BI Service as well. ## What you get [Section titled “What you get”](#what-you-get) The dialog has nothing to fill in. It shows: * **Reporting API key** - created automatically the first time and reused after that. It can read call reports and nothing else. Use the eye button to reveal it and the copy button to copy it. Keep it private: anyone with the key can read your call reports. * **Data feed URL** - the address the BI tool reads. It returns one row per call. Each row carries the call’s id, date and times, direction, status, end reason, your number and the caller’s number, agent id and name, duration in seconds, transfer status and destination, whether a person joined the call, whether it was during business hours, the feedback rating, a short summary, the source, and the post-call analysis fields of that agent. Transcripts are not included, and test calls from scenarios are left out. Without a date range the feed returns the last 30 days. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Power BI / Looker Studio - Connect**. Wait while the key is prepared. 2. **Looker Studio:** click **Open in Looker Studio**. Authorize the connector the first time, paste your reporting API key when asked, and save the dashboard that opens to your account. 3. **Power BI:** click **Copy Power Query script**. In Power BI Desktop choose **Get data - Blank query**, open the **Advanced editor** and paste the script. When asked for credentials, choose **Anonymous**. The key is already inside the script. 4. To keep Power BI current, publish the report to the Power BI Service and turn on scheduled refresh. 5. Prove it: make a test call to one of your agents, refresh the dashboard, and find the new row with your agent’s name and the call duration. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) Nothing changes for the agent. This connection is read-only reporting on calls that already happened. The Power BI script loads the last 90 days by default and turns each post-call analysis field into its own column, named `analysis.` followed by the field name. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - how connections work across the platform.→](/integrations/)[API keys - manage or revoke keys, including the reporting key.→](/getting-started/api-keys/)[Call results - choose the fields each agent extracts, which become dashboard columns.→](/agent-configuration/call-results/)
# ClickUp
> Let the agent create and update ClickUp tasks, add comments and recognise callers from a contacts list.
ClickUp lets the agent turn a call into a task in the right list, update an existing task when a caller follows up, and recognise the caller from a ClickUp contacts list. **Integrations - Catalogue - ClickUp - Connect** opens **Connect ClickUp**. One connection is shared by the whole company. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A ClickUp personal API token. In ClickUp open **Settings - Apps** and generate the API token. Tasks and comments the agent creates appear under the owner of this token. * The list new tasks should go to. * Optional: a ClickUp list whose tasks represent your contacts, with a custom field that holds their phone number. The agent uses it to recognise callers. ## What you enter [Section titled “What you enter”](#what-you-enter) Personal API tokenREQUIRED Paste it and click **Test token**. The test loads the lists in your workspace. Default listREQUIRED Where new tasks land unless the agent finds a better list during the call. Contacts list The list whose tasks are your contacts. Phone custom-field id The id of the custom field on the contacts list that holds phone numbers. ## First setup [Section titled “First setup”](#first-setup) 1. Generate the API token in ClickUp. 2. **Integrations - Catalogue - ClickUp - Connect**. Paste the token and click **Test token**. 3. Pick the **Default list**. If you want caller recognition, also pick the **Contacts list** and enter the **Phone custom-field id**. Click **Connect**. 4. Open **My Agents - your agent - Skills - Tools & Workflows**, turn the **ClickUp** tool on and open its settings. 5. Pick the operations. **Create task** is ticked by default. Add **Identify contact by number** and turn on **Auto-identify caller from the contacts list** if you set up a contacts list. 6. **Save** the agent. 7. Prove it: call the agent and ask it to log a request. Check that the task appears in the default list with the details you gave. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) **Tasks** * Create a task in the default list, or in another list it finds by name (for example Billing or Sales). * Rename a task, rewrite its description or change its priority. * Change a task’s status. * Add a task to another list. * Add a comment to a task. * Assign or unassign people, after looking up who can be assigned on the list. * Attach a file to a task from a web link, up to 15 MB. * Search tasks and open one by its id. **Callers** * Recognise the caller by phone number in the contacts list, at the start of the call or when asked. * Browse the contacts list. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection, then the agent tool.→](/integrations/)[Jira - for ticket-based support.→](/integrations/productivity/jira/)[Airtable - when your contacts and records live in a table.→](/integrations/productivity/airtable/)
# Dropbox
> Let the agent find files, share download links and store call documents in Dropbox.
Dropbox gives the agent your shared files. It can find a price list or form while the caller waits and send a download link, create a folder per customer, or ask the caller to upload documents through a Dropbox file request. **Integrations - Catalogue - Dropbox - Authorize** opens Dropbox’s consent screen in a new window. One connection is shared by the whole company. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A Dropbox account that can see the files the agent should use. Files the agent uploads, moves or deletes are changed in this account, so a dedicated company account is a good choice. * Pop-ups allowed for Voice Logica in your browser. Authorization runs in a pop-up window. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Dropbox - Authorize**. 2. Sign in to Dropbox in the pop-up and approve access. The window closes and Dropbox moves to **Connected**. 3. Open **My Agents - your agent - Skills - Tools & Workflows**, turn the **Dropbox** tool on and open its settings. 4. Pick the operations. **List files**, **Search files** and **Get download link** are ticked by default. Add write operations, such as **Upload file**, **Create folder** or **Delete file**, only if the agent really needs them. 5. **Save** the agent. 6. Prove it: call the agent and ask for a file by name. The agent should find it and offer a link. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) **Find and share** * List the files and folders in a path. * Search files by name, and by content where Dropbox indexes it. * Read a file’s details, such as size and last modified date. * Create a temporary download link to read out or send to the caller. * List the shared links that already exist for a path. * Read the connected account’s name, email and storage, to confirm the connection. **Store and organise** (only the operations you enabled) * Upload a call document, such as a recording or a form, to a path. * Create a folder, for example one per caller or per case. * Create a shared link for a file or folder. * Create a file request so the caller can upload documents themselves. * Move, rename, copy or delete a file or folder. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection, then the agent tool.→](/integrations/)[Google Workspace - for Drive, Sheets and Calendar.→](/integrations/google/)[Trello - attach files to cards from a link.→](/integrations/productivity/trello/)
# Jira
> Let the agent look up, create, comment on and move Jira issues during a call.
Jira gives the agent your ticket system on the phone. A caller can ask “what is happening with SUP-1234?” and hear the current status, or report a problem and get a new issue filed while they are still on the line. **Integrations - Catalogue - Jira - Connect** opens **Connect Jira**. One connection is shared by the whole company, and every agent that has the Jira tool on uses it. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A Jira Cloud site (the address you open Jira on, ending in `atlassian.net`). * An Atlassian API token. In Atlassian go to **id.atlassian.com - Security - API tokens - Create API token** and copy the token straight away. Atlassian shows it only once. * Preferably a dedicated service account to own the token. Every issue, comment and status change the agent makes is recorded under the token owner’s name. ## What you enter [Section titled “What you enter”](#what-you-enter) Site URLREQUIRED Your Jira address, for example `https://yourcompany.atlassian.net`. Account emailREQUIRED The email of the Atlassian account that owns the token. API tokenREQUIRED The token you just created. Default project key The project new issues go to when the caller does not name one, for example `SUP`. Default issue type The issue type for new issues. Jira’s “Task” is used when you leave it blank. ## First setup [Section titled “First setup”](#first-setup) 1. Create the API token in Atlassian and copy it. 2. **Integrations - Catalogue - Jira - Connect**. Fill in the site URL, account email and token, click **Test connection**, then **Connect**. 3. Open **My Agents - your agent - Skills - Tools & Workflows**. Turn the **Jira** tool on and open its settings. 4. Pick the operations. **Look up issue** and **Search issues** are ticked by default. Add **Create issue**, **Add comment** or **Transition issue** only if the agent should change tickets. 5. Optionally set a **Default project key** and **Default issue type** for this agent, and choose **Identify the caller by**: phone (automatic from caller ID), VAT number, email, a custom identifier the agent asks for, or no tagging. With phone, you can also turn on **Pre-load the caller’s tickets on call start**. 6. **Save** the agent. 7. Prove it: call the agent, read out an existing issue key and ask for its status. Then open the issue in Jira to compare. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) **Find tickets** * Look up an issue by its key and read its status and summary. * Search issues by free text across summaries, descriptions and comments. * Read the latest comments on an issue. * List the projects available, so it can pick the right one when the caller names a project. **Change tickets** (only the operations you enabled) * Create a new issue in the default or named project. * Update an issue’s summary, description or priority. * Add a comment to an existing issue. * Move an issue to another status, such as In Progress or Done. * Assign or reassign an issue to a person by email or name. **Know who is calling** * Tag issues it creates with the caller’s identifier (phone, VAT, email or custom), so the next call from the same person finds their tickets. Issues get a label starting with `vl-caller-`. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection, then the agent tool.→](/integrations/)[ClickUp - if your team tracks work in ClickUp instead.→](/integrations/productivity/clickup/)[Trello - for board-and-card workflows.→](/integrations/productivity/trello/)
# Trello
> Let the agent read boards and lists, create and move cards, and add comments during a call.
Trello turns a phone call into a card on the right board. The agent can file a request as a new card, move a card when a caller confirms something, assign a team member, or read back what is already on a card. **Integrations - Catalogue - Trello - Connect** opens **Connect Trello**. One connection is shared by the whole company and reaches every board the authorizing Trello member can see. ## What you need before you start [Section titled “What you need before you start”](#what-you-need-before-you-start) * A Trello account that is a member of the boards the agent should work on. A dedicated team member account is a good choice, because cards and comments the agent creates appear under that member. * Nothing else. Voice Logica uses its own Trello app key unless you choose to use yours. ## What you enter [Section titled “What you enter”](#what-you-enter) Member tokenREQUIRED The token Trello shows after you click **Authorize with Trello** and approve access. Account label A name for the connected card, for example the team or account name. API key Under **Use your own Trello API key**. Leave blank to use the shared Voice Logica key. Fill it only if you created your own Power-Up API key in Trello. ## First setup [Section titled “First setup”](#first-setup) 1. **Integrations - Catalogue - Trello - Connect**. 2. Click **Authorize with Trello**. Sign in to Trello in the new window and approve access. 3. Copy the token Trello shows, paste it into **Member token**, click **Test connection**, then **Connect**. 4. Open **My Agents - your agent - Skills - Tools & Workflows**, turn the **Trello** tool on and open its settings. 5. Pick the operations. **List boards**, **List lists on a board** and **Create card** are ticked by default. 6. Under **Allowed boards**, pick the boards this agent may use. Click **Refresh boards** if a new board is missing. Leave it empty to allow every board the connected member can see. 7. **Save** the agent. 8. Prove it: call the agent and ask it to log a request. Check that the new card appears in the expected list. ## What the agent can do [Section titled “What the agent can do”](#what-the-agent-can-do) **Read** * List boards, the lists on a board, and the cards on a board or in one list. * Open a card by its id or short link and read its details. * Search cards by free text. * Read the latest comments on a card. * List the members of a board before assigning someone. **Write** (only the operations you enabled) * Create a card in a list with a title and description. * Rename a card, rewrite its description or set its due date. * Move a card to another list or board. * Add a comment to a card. * Assign or remove a member on a card. * Attach a file to a card from a web link. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [Get an integration working - the company connection, then the agent tool.→](/integrations/)[Jira - for ticket-based support.→](/integrations/productivity/jira/)[ClickUp - for task lists and caller identification.→](/integrations/productivity/clickup/)
# WebMCP
WebMCP lets an AI agent that runs inside the browser use the Voice Logica web app the way a person would: find a call, open an agent, walk through a setup guide. The app tells the browser which actions it offers, so the agent calls them directly instead of guessing at buttons. It is the browser side of [Claude and ChatGPT](/integrations/claude-chatgpt/). The table shows the difference. | | WebMCP | MCP server (Claude, ChatGPT) | | --------------- | ------------------------------------------------------------ | --------------------------------------------------------------------------------- | | Where it runs | In your browser tab on `app.voicelogica.ai` | Claude or ChatGPT calls `https://api.voicelogica.ai/api/v1/mcp` | | Who it acts as | Whoever is signed in to that tab | The account you sign in with when you connect | | What it can do | Read and navigate. It never saves, sends or deletes anything | Read and change: agents, calls, campaigns, telephony, the website widget and more | | What you set up | Nothing | Add the connector once | ## What it needs [Section titled “What it needs”](#what-it-needs) * A browser or browser agent that supports WebMCP (`navigator.modelContext`). Without one, the app works as normal and offers no tools. * For your own data: be signed in to `app.voicelogica.ai` in that tab. The tools see exactly what your role sees. The app registers its tools once, when the page loads. An agent that adds WebMCP support to a tab after the page loaded sees no tools: reload the page. ## Without signing in [Section titled “Without signing in”](#without-signing-in) These work on any visit, so an agent can answer product questions and start a sign-up: * `ask_voicelogica`: answers a question about the product from the product guide. * `site_info`, `get_docs_index`: what Voice Logica is and where the docs are. * `list_supported_integrations`: the CRMs, ERPs, calendars, shops and other systems we connect to. * `get_product_map` on [app.voicelogica.ai/for-agents](https://app.voicelogica.ai/for-agents): the whole product on one page. * `get_sign_in_options`, `get_sign_up_requirements`, `start_sign_up`, `get_password_reset_steps` on the sign-in, sign-up and password pages. `start_sign_up` opens the form with the email filled in. It never types a password. ## Signed in [Section titled “Signed in”](#signed-in) * **Find and open**: `search_calls` / `open_call`, `search_contacts` / `open_contact`, `list_agents` / `open_agent`, `list_campaigns` / `open_campaign`, `list_workflows` / `open_workflow`, `list_tasks` / `open_task`, `list_mailboxes`, `search_email_threads` / `open_email_thread`, `search_users`. * **Move around**: `list_app_pages`, `open_page`, `get_current_page`, `get_session`. * **Setup guides**: `list_setup_guides`, `get_setup_guide`, `start_setup_guide`, `open_guide_step`. There are guides for a phone line or SIP trunk, an office PBX, going live, editing an agent, workflows, transfers, appointments, knowledge, campaigns, the team, SMS, the website widget and more. Each step opens the right page, and says which Claude tool does the same step from a chat. Calls, contacts and emails contain text that other people wrote. The app marks those answers as untrusted, and a well-behaved agent treats them as data, never as instructions. ## For agents and crawlers [Section titled “For agents and crawlers”](#for-agents-and-crawlers) * [app.voicelogica.ai/for-agents](https://app.voicelogica.ai/for-agents): the public entry page for AI agents. * [app.voicelogica.ai/llms.txt](https://app.voicelogica.ai/llms.txt) and [llms-full.txt](https://app.voicelogica.ai/llms-full.txt): the product guide as plain text.
# What you can ask Claude and ChatGPT
Once [Claude or ChatGPT is connected](/integrations/claude-chatgpt/), you run Voice Logica by asking in plain words. This page lists everything it can do, by area, with requests you can copy. It can only do what your role allows in the app, it works on the company you are signed in to, and it asks before changing anything live or spending money. ## Not sure where to start [Section titled “Not sure where to start”](#not-sure-where-to-start) * In Claude, click **+** in the message box and open **Voice Logica**: ready-made starters are listed there (**What can you do?**, **Build a phone agent**, **Connect my office PBX**, **Go live**, **Set up my team’s phones**…). Pick one and it fills the request for you. * Or just ask: *“What can you do in Voice Logica?”* - you get a short menu. * Any *“How do I…?”* question is answered with the matching setup guide, step by step, and it offers to do the steps for you. ## Agents [Section titled “Agents”](#agents) Create and change the AI agents that answer and make calls. * *“Build an agent for my dental clinic that answers in Greek and books appointments.”* * *“Change the greeting to: Good morning, Smile Clinic, how can I help?”* * *“Make it stop giving prices and offer a callback instead.”* * *“Use a warmer female voice. Add English as a second language.”* * *“Let it transfer to Maria for billing questions and to the front desk otherwise.”* * *“Hang up politely after the caller says goodbye.”* * *“Show me the saved versions and publish the last one.”* * *“It says ‘Marousi’ wrong - fix the pronunciation.”* ## Testing [Section titled “Testing”](#testing) * *“Call me so I can hear it”* - it rings your phone with the agent. * *“Give me a link to test it in the browser.”* * *“Write ten test scenarios for booking and cancelling, run them and tell me what failed.”* * *“Apply the fixes the tests suggested.”* ## Knowledge [Section titled “Knowledge”](#knowledge) What the agent knows about your business. See [Learning Center](/learning-center/). * *“Add our website to its knowledge.”* * *“Add this price list”* (paste or attach it). * *“Which questions could callers not get answered this week? Answer them from our FAQ.”* * *“Check the knowledge for duplicates and outdated answers.”* * *“What does the agent say if someone asks about parking?”* ## Calls and reports [Section titled “Calls and reports”](#calls-and-reports) * *“Show yesterday’s calls that ended in a transfer, with the reason.”* * *“How many calls did we get last week, how many were missed, and at what hours?”* * *“Open the call from +30 69… this morning - transcript and summary.”* * *“Which calls mentioned a complaint?”* * *“Transcribe this recording”* (attach it). * *“Call Nikos at +30 69… and confirm his appointment for tomorrow.”* * *“Which calls are scheduled for later? Cancel the ones for Friday.”* ## Tasks and follow-ups [Section titled “Tasks and follow-ups”](#tasks-and-follow-ups) See [Tasks](/tasks/). * *“Who needs a callback? Anything overdue?”* * *“What are my tasks?”* / *“What is on my list today?”* - your own tasks and callbacks on Voice Logica, not those in a connected ClickUp or Trello (name that app to use it). * *“What is on Maria’s list this week?”* * *“Show my calls from yesterday”* / *“What’s my extension and SIP password?”* / *“How do I install the app on Android?”* * *“Remind me to send Eleni the offer on Friday at 10.”* * *“Book a meeting with Acme on Tuesday 12:00 for 30 minutes.”* * *“Mark the callback for Nikos as done.”* * *“Create tasks automatically when a caller asks for a callback or a meeting.”* ## Campaigns (outbound) [Section titled “Campaigns (outbound)”](#campaigns-outbound) See [Campaigns](/outbound-calls/campaigns/). * *“Start a campaign calling this list tomorrow from 10:00 to 14:00”* (attach the list). * *“Call me first so I hear how the campaign agent sounds.”* * *“How is the campaign going? How many answered, how many said yes?”* * *“Pause the campaign. Retry the ones who did not answer on Monday.”* ## Contacts and calendar [Section titled “Contacts and calendar”](#contacts-and-calendar) * *“What do we know about Eleni Papadopoulou - calls, notes, appointments?”* * *“Save this caller as a contact: Giorgos, Acme Ltd.”* * *“What appointments do we have tomorrow?”* * *“Book Dimitris for Thursday at 11:00 and move Anna to Friday.”* ## Messages [Section titled “Messages”](#messages) * *“Send an SMS to +30 69… that the order is ready.”* * *“Send this as Viber, fall back to SMS.”* * *“Email the customer a summary of the call.”* * *“Add our company name as an SMS sender.”* ## Workflows [Section titled “Workflows”](#workflows) Automations during and after calls. See [Workflows](/workflows/). * *“After every call, email me the summary if the caller wants a quote.”* * *“When a call is missed, send the caller an SMS that we will call back.”* * *“When a call ends with a booking, add a row to our Google Sheet.”* * *“During calls, text the caller our booking link.”* * *“Let the agent look up an order in our shop’s API while the caller waits.”* * *“Send every finished call to our CRM webhook.”* * *“Test the workflow with the last call.”* ## Integrations [Section titled “Integrations”](#integrations) Your CRM, e-shop, helpdesk and other tools. See [Integrations](/integrations/). * *“Which integrations can I connect?”* * *“Connect Salesforce”* / *Zoho* / *HubSpot* / *Trello* / *ClickUp* / *Freshdesk* / *Zendesk* / *Microsoft 365*. * *“Sync the e-shop products so the agent knows stock and prices.”* * *“Create a ticket in Freshdesk from this call.”* ## Telephony and devices [Section titled “Telephony and devices”](#telephony-and-devices) See [Telephony](/telephony/) and [Users, seats and devices](/telephony/users-and-devices/). * *“Connect my Panasonic PBX.”* It creates the connection and walks you through your PBX’s own menus. See [Connect your PBX](/telephony/connect-your-pbx/). * *“Connect my SIP carrier.”* / *“Get us the free number.”* * *“Add +30 210 123 4560 to 4569 to our trunk.”* * *“Send calls on this number to my agent, and to the front desk after hours.”* * *“Calls to mobiles should go out on the Vodafone trunk with our main number.”* * *“Why are calls to our number failing?”* - it reads the SIP logs. * *“Invite and give her the iOS app.”* * *“How many free seats do we have? Buy 2 SIP seats.”* * *“Give me Nikos’s SIP details and the Windows download link.”* * *“Email Maria the setup for the iOS app, in Greek.”* ## Team, company and billing [Section titled “Team, company and billing”](#team-company-and-billing) * *“Invite a colleague as admin.”* / *“Revoke the invitation to …”* * *“Change our opening hours: Saturdays closed.”* * *“Which plan are we on and what is left this month?”* * *“We want to go live: which plan fits us?”* It shows the plans, sends a secure card link if needed, and buys the plan you pick. * *“Which add-ons are there?”* / *“Is there a card on file?”* ## Support [Section titled “Support”](#support) * *“Open a support ticket: calls drop after 30 minutes.”* * *“How do I …?”* - answered from these docs. ## Next Steps [Section titled “Next Steps”](#next-steps) [Claude and ChatGPT - connect it.→](/integrations/claude-chatgpt/)[Users, seats and devices - the team phone setup.→](/telephony/users-and-devices/)[Tasks - follow-ups from calls.→](/tasks/)
# Zoho CRM
**Integrations - Catalogue - Zoho CRM - Authorize** starts Zoho OAuth for this company. Then enable the **Zoho CRM** tool on the agent.  zoho-oauthExpand ## First setup [Section titled “First setup”](#first-setup) 1. **Catalogue - Zoho CRM - Authorize**. 2. Sign in to Zoho (*Sign in to access Accounts*) and approve. 3. Confirm the card appears under **Connected**. 4. Agent - **Tools & Workflows** - enable Zoho CRM, save. 5. Prove with a call from a known CRM phone number. ## Troubleshooting [Section titled “Troubleshooting”](#troubleshooting) ## Next Steps [Section titled “Next Steps”](#next-steps) [HubSpot - alternative CRM.→](/integrations/hubspot/)[Get an integration working - Catalogue then agent tool.→](/integrations/)