AI assistant
Ask plain questions and get answers from your own CRM data — plus AI follow-up agents that work leads for you.
AI assistant
The AI Assistant lets you ask your CRM questions in plain language — "How many leads came in this week?", "Show me my overdue follow-ups", "Draft a WhatsApp follow-up for this lead." Behind the scenes it does not guess: it reads live numbers from your workspace's data through controlled tools, so the answer is the same number a report would show.
There are two AI features in this area:
- AI Assistant (this page) — you ask, it answers/does.
- AI Follow-up Agents — autonomous agents you enroll leads into (see below).
Who this is for
-
Managers and admins — this menu is shown to manager-and-above roles.
-
Sales teams — benefit from the AI-drafted emails and WhatsApp messages on Lead 360.
-
Difficulty: Medium
-
Time: 10 minutes
-
Prerequisites: The AI Assistant menu is visible to managers and above. Using a real LLM needs an AI provider key (see "Setup" below) — without one, the assistant degrades honestly instead of pretending.
Steps
1. Ask a question
- Open AI Assistant in the sidebar (
/admin/ai-assistant). - Type a question, for example:
- "How many leads do we have and how many are new?"
- "Which leads haven't been contacted yet?"
- "What are my overdue follow-ups this week?"
- "How is the team performing this month?"
- "What did Meta ads produce last month?"
Expected result: an answer grounded in your data. Numbers come from live queries against your workspace — never a guess.
2. Ask it to do something
The assistant can also act, within your permissions:
- Create a follow-up — "Create a follow-up for Ramesh tomorrow at 10am to discuss pricing."
- Draft a WhatsApp message — it writes the draft; you approve and send it from the inbox.
Expected result: the follow-up appears in Follow-ups with the details you gave; drafts land ready to review, never sent behind your back.
Answers are scoped to your business The assistant is tenant-clamped: it can only see (and only report on) your workspace's data. It cannot cross into other businesses.
3. Know what it can do today
The assistant has a fixed set of skills (tools):
| Skill | What it answers/does |
|---|---|
| Dashboard metrics | Leads, new leads, conversions, revenue summary. |
| Leads | Search and list leads matching conditions. |
| Follow-ups | Open/overdue tasks. |
| Call history | Recent calls and outcomes. |
| Team performance | Per-member activity and results. |
| Meta insights / campaigns | Ad spend, CPL and campaign performance. |
| Create follow-up | Writes a task to the CRM. |
| Draft WhatsApp message | Produces a message draft for review. |
Anything outside this list — the assistant says so rather than inventing an answer.
AI Follow-up Agents (autonomous mode)
An AI SDR agent is a configurable persona that follows up enrolled leads step by step: it decides what to do next for each enrolled lead and does one thing per cycle (for example, send a follow-up email), within hard guardrails.
4. Create an agent
- Open AI Follow-up Agents (same group in the sidebar,
/admin/ai-sdr-agents). - Click New agent and set:
- Goal — Qualify (find out if they fit) or Book (get a meeting).
- Channel — email, SMS or WhatsApp.
- Persona and offer context — how it should sound and what it may offer.
- Guardrails: maximum touches (1–20, default 4), minimum hours between touches (default 24), and whether it must respect business hours.
- Active — off until you switch it on.
- Save.
Expected result: the agent appears in the list, inactive. Nothing happens until you enroll leads.
5. Enroll a lead
- Open a lead's Lead 360 view and use Enroll AI SDR (or bulk-enroll from All Leads).
Expected result: the enrollment is created. Every 15 minutes a worker lets the agent take one step per enrolled lead — a message, a wait, or a stop — always inside its guardrails. Leads who opted out or that the agent's rules say are unreachable are skipped, and enrolling twice is a no-op.
6. Setup: connect an AI provider
- Go to Settings → AI.
- Choose the provider (OpenAI or DeepSeek), paste the API key, and pick the model (default: DeepSeek
deepseek-v4-flash). Keys are stored encrypted and shown masked.
Expected result: the assistant upgrades from deterministic summaries to a conversational model. Note that even with a model connected, every number still comes from live tool queries — the model never invents figures.
Without a key the AI is not "broken" With no AI key configured, the assistant answers with deterministic summaries and tells you plainly that AI answers are not set up yet. That is honest behaviour, not an error. Ask your platform admin to add a key under Settings → AI (or platform AI settings).
Expected result
You can interrogate your pipeline in plain language and get real numbers; and AI follow-up agents can take over repetitive touch sequences without ever sending something a human cannot audit (all activity is visible on the lead's timeline).
Common mistakes
- Expecting the LLM to compute numbers. It does not; tools query the database. If a number looks wrong, check the underlying report/data, not the prose.
- Turning an agent on with no guardrails. Start with the defaults (4 touches / 24 hours); raise limits deliberately.
- Enrolling opted-out leads. The system blocks it by design — respect the signal.
- Forgetting billing. AI calls consume your provider credits; usage is visible in the platform's AI settings for admins.
Troubleshooting
| Symptom | Fix |
|---|---|
| "AI answers are not set up yet" | No provider key — Settings → AI. |
| Assistant answers look generic | No key configured (deterministic fallback) or the question is outside its tools. |
| Agent did nothing after enrolling | The agent is inactive, the enrollment is outside business hours/interval, or the lead is unreachable/opted out. The next 15-minute cycle will progress it. |
| AI draft email won't generate | The AI provider is not configured, or mail logging is on; drafts are generated by AiEmailComposerService when a provider is available. |
Technical details
- Assistant page:
App\Filament\Pages\AiAssistant(slugai-assistant, manager-or-above). Services:App\Services\Ai\Assistant\TenantAssistantServiceandTenantAssistantTools(the tools listed above). Provider resolution viaAiChatClient::resolveProvider— tenantsettings.ai.*→ platformAiSettings→ environment. - Agents:
App\Filament\Resources\AiSdrAgentResource(plan featureai_sdr); model enrollment viaAiSdrEnrollment; processingProcessAiSdrEnrollmentsruns every 15 minutes (one decision/action per enrollment per tick). Guards:ai_sdr_opted_out_at,AiSdrAgent::canReach, idempotent enrollment. - Email drafting on leads:
AiEmailComposerService; enrichment uses theEnrichLeadjob (needs the lead's email).
Related guides
- Lead 360 view — where drafts, enrichment and enrollment live.
- Follow-ups & tasks — where created tasks appear.
- Reports — verify any number the assistant gives you.
- Meta overview — the ads data the assistant can read.
Was this page helpful?
Thanks — noted. ✦