Skip to main content

Create an assistant

An assistant is the AI that talks to your customers. You give it a personality (the system prompt), a brain (an LLM), knowledge (data sources), and hands (tools), and then you point a channel at it — a website widget, a phone number, WhatsApp, an Instagram inbox. From the customer's perspective, the assistant is the product. From yours, it's a configuration you can iterate on without redeploying anything.

This page walks you through creating one end to end.

Pick the right type

The assistant type decides which channels it can serve. You lock it at creation and pick it based on where your customers will reach you.

TypeUse it forChannels
SimpleText-based conversationsWeb chat widget, WhatsApp, SMS, Facebook Messenger, Instagram DMs, Telegram, LeadConnector, embedded form
PhoneReal phone callsTwilio, Plivo, Telnyx, SIP
Realtime OpenAIVoice calls with sub-second latencySame telephony channels as Phone, but routed through OpenAI's Realtime API
NL2SQLNatural-language queries against a databaseAPI-only specialised use case

If you're unsure, start with Simple. It's the cheapest to iterate on and most of what you learn (prompt design, data source curation, escalation rules) transfers directly to a voice assistant later.

Four business use cases

Dental practice — voice receptionist. Bright Smile Dental wants every after-hours call answered. They create a Phone assistant called bright-smile-receptionist, attach their FAQ data source (services, hours, insurance), wire in the Calendar Pool tool, and route their main number to it. Outcome: 40+ appointments booked per month outside business hours, zero missed calls.

B2B SaaS — sales qualifier. An analytics startup wants to qualify website leads before SDRs see them. They create a Simple assistant, attach a data source with product docs and pricing, link a Conversation Flow that asks four qualifying questions, and embed the chat widget on /pricing. Outcome: SDRs spend their time only on leads that already self-identified as a fit.

E-commerce — support tier-1. A meal-kit company wants to deflect "where's my order" and "how do I pause delivery" tickets. They create a Simple assistant, attach their help-centre crawl as a data source, wire in the Postgres tool to look up real-time order status, and embed the widget in their account pages. Outcome: 60% of tier-1 volume resolved without a human.

Real estate — voice intake. A brokerage wants a single phone number for new buyers and sellers. They create a Phone assistant, build a Conversation Flow that branches on "buying / selling / renting", and wire the HubSpot tool so leads land in the CRM with the right pipeline. Outcome: new-lead intake works at 3 AM as well as at 3 PM.

Walk through the form

From the dashboard, go to Build → Assistants → Add assistant.

1. Basics

  • Name — internal label. Required.
  • Description — free text.
  • Type — locked once saved (see above).

2. Model and behaviour

  • Model — the LLM that generates responses. Default is gpt-4o-mini. See Choosing an LLM.
  • System prompt — instructions that shape every turn. See Writing a system prompt.
  • Use tools — toggle to let the LLM call attached tools.
  • Show citations — toggle to show or hide the source documents the assistant retrieved.
  • Live agent handoff — toggle to enable transferring to a human agent.

3. Voice (Phone or Realtime types only)

Pick STT (Azure Speech, Deepgram, or ElevenLabs), TTS (Azure, ElevenLabs, Cartesia, PlayHT, or a custom-cloned voice), and the working languages. See Voice settings.

4. Knowledge

Attach data sources — uploaded files, website crawls, or live CRM lookups. See Data sources overview.

5. Tools and integrations

Attach tools the assistant can call — calendar, CRM write-back, payments, SMS. The Use tools toggle must be on for the assistant to actually invoke them.

6. Forms and intents

  • Forms — structured questionnaires the assistant can present mid-conversation. See Forms library.
  • Intents — outcomes you want the assistant's conversations classified into. See Intents library.

Save and what happens next

Saving creates the assistant. You land on its detail page. Nothing is live yet — you still need to attach a widget for the assistant to take traffic. Open Build → Widgets to add a chat embed, claim a phone number, or wire WhatsApp.

The first message

The first thing the customer hears or sees is the widget's intro message, not something on the assistant itself. Set it under Build → Widgets → [your widget] → Customisation → Intro message.

For voice channels, that line is spoken when the call connects. For chat, that line is the first bubble the user sees.

Programmatic creation

curl -X POST https://api.insighto.ai/api/v1/assistant \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "acme-support",
"assistant_type": "simple",
"llm_model": "gpt-4o-mini",
"system_prompt": "You are a support agent for Acme.",
"use_tools": true
}'

The response includes the assistant's id, which you'll use when attaching widgets, data sources, and tools.

Cloning and versioning

There's no automatic version history. Two patterns that work:

  • Clone before a big change. Edit the clone, point a test widget at it, swap traffic when the new version proves itself.
  • Name environments. acme-support-staging vs acme-support-prod is a common pattern when more than one person edits a single assistant.

Where to next