Communications
SurelyCrm brings your customer communications into one place. Make and receive calls, send emails and SMS, run bulk campaigns, and keep a complete history of every interaction.
Built-in Telephony
SurelyCrm integrates with Twilio to provide a fully embedded phone system. No separate dialer required.
Opening the Dialer
Click the Open Dialer button in the application footer or header. The dialer opens in a popup window so you can navigate the CRM without dropping an active call.
Making Calls
- Click-to-Call — Click the phone icon next to any customer's mobile or home number in their profile or the customer list
- Manual Dial — Enter a number directly into the dialer keypad
Receiving Calls
When an incoming call arrives:
- The dialer popup rings and shows the caller ID.
- The main window displays a modal with matching customer records.
- Click the customer name to open their profile in a new tab while continuing the call.
SurelyCrm automatically searches for customers by phone number across all common UK formats (+44, 0-prefix, plain numbers).
Call Controls
| Control | Function |
|---|---|
| Answer / Hang Up | Start or end a call |
| Mute / Unmute | Toggle your microphone |
| Hold / Resume | Pause the call (timer pauses too) |
| Call Timer | Displays duration in real time |
Call History
All calls are automatically logged to the customer's notification history. You can see inbound/outbound call records, timestamps, and durations from the customer's profile.
Browser Requirements: The telephony feature requires popup windows to be allowed, and uses Web Audio API and WebRTC. Supported browsers: Chrome 90+, Edge 90+, Firefox 88+, Safari 14+.
Email & SMS
Send one-to-one messages directly from a customer profile:
- Open the customer profile and go to the Actions section.
- Select Email or SMS.
- Choose a pre-made template or enter custom content.
- Send the message. It is logged automatically in the Notifications tab.
Message Templates
Administrators create templates in Settings > Email Templates and Settings > SMS Templates. Templates support token substitution using the syntax [Entity.Property], where Entity is the record type (for example Customer) and Property is a property name — matched exactly, including case:
[Customer.Firstname]— Customer's first name[Customer.Surname]— Customer's surname[Customer.ReferenceNumber]— Customer's unique reference[Customer.EmailAddress]— Email address[Customer.MobilePhone]— Mobile number
Any property of the record can be used, including custom fields via [Customer.ExtraField.FieldName]. Values are formatted automatically: dates render as dd/MM/yyyy, money as currency, and Yes/No for true/false values. Tokens that don't match a property are left as-is.
Bulk Actions
Bulk Actions let you communicate with large groups of customers efficiently. Access them from Bulk Actions in the sidebar.
Creating a Bulk Job
- Choose an action type: Email or SMS.
- Select a template or write custom content.
- Define your audience using filters:
- Status (In / Not In / Equals)
- Assigned Owner
- Important Date range
- Date of Birth range
- Balance range
- Postcode
- Notifications Enabled flag
- Custom Views
- Click Preview to see how many customers match and review a sample.
- Click Create Job to execute. Jobs run in batches of 100 for stability.
Managing Jobs
From the Bulk Actions dashboard you can:
- View all jobs with status: Pending, Running, Paused, Completed, Failed, Cancelled
- Pause a running job
- Resume a paused job
- Cancel a running or pending job
- Retry a failed job
- Delete completed or cancelled jobs
Tip: Always use the Preview feature before executing large bulk actions. It shows the total match count and a sample of the first 10 customers who will receive the message.
Automated Actions
The Action Designer lets you create event-driven automations that fire instantly when something happens in the system. Unlike scheduled workflows, these are immediate reactions.
Common setups include:
- When a customer is created → Send welcome email
- When a status changes to "Closed Won" → Send congratulations SMS
- When a payment is received → Update status to "Active"
Administrators configure these in Automated Actions > Designer.
Email Agent
The Email Agent is a background service that connects to your inbound mailboxes over IMAP and processes new messages according to each mailbox's type. Administrators manage it from Settings > Email Agent, where you can switch the agent on or off, configure mailboxes and bounce rules, and review recent activity.
Agent Status
The Agent Status card at the top of the page shows whether the agent is running. Use the toggle to enable or disable it — this switches the ProcessInboundEmail feature for your tenant, so it can also be managed from
Administration > Feature Toggles.
While disabled, no mailboxes are polled and no inbound email is processed.
Inbound Mailboxes
Click Add Mailbox to connect a mailbox. Each mailbox has a type that decides how its messages are handled:
- Correspondence — replies from known customers are recorded in their notification history, bounces are detected and handled by your bounce rules, and messages from unknown senders follow the Unknown Sender Handling setting described below.
- Support — a new message from a known customer creates a support request in the default category you choose, and replies are added to the existing request (matched by message threading or the support reference number in the subject); a reply that cannot be matched opens a new request. An automatic acknowledgement is sent from the Reply From Address. Messages from senders that match no customer are logged and skipped.
| Field | Description |
|---|---|
| Name | Friendly label for the mailbox (for example Support Desk) |
| Order | Display order in the list |
| Enabled | Only enabled mailboxes are polled |
| Mailbox Type | Correspondence or Support |
| Default Support Category | Support mailboxes only — required; the category new support requests are raised in |
| Reply From Address | Support mailboxes only — the From address used for ticket auto-responses |
| IMAP Server / Port / SSL | Connection details; port defaults to 993 with SSL on |
| Username / Password | Credentials for the mailbox account |
| Mark Read | Mark messages as read once processed |
| Max / Run | Maximum messages processed per run (default 50, up to 1,000) |
Each row offers Test (verifies the IMAP connection before you rely on it), Edit, Enable/Disable, and Delete. Disabling a mailbox pauses it without losing its configuration.
Tip: Always use Test after creating or editing a mailbox. If the agent cannot connect, that mailbox is skipped on every run and an error is recorded in the agent logs.
Bounce Rules
When the agent detects a bounce on a correspondence mailbox — delivery status notifications, mailer-daemon or postmaster messages, and similar failure notices — it works out which customer the failed delivery belongs to and applies your bounce rules. Click Add Rule to create one.
Rules are checked in priority order (lowest number first) and only the first matching enabled rule runs. Matching is case-insensitive:
- SubjectContains / BodyContains / HeaderContains — the match value appears in the bounce subject, body, or headers
- FromAddress — the match value appears in the bounce sender address (for example
mailer-daemon) - Always — matches every bounce; leave the match value blank. For the other match types a blank value never matches.
| Action | Effect on the customer |
|---|---|
| DeleteCustomer | Deletes the customer record |
| UpdateStatus | Changes the customer's status — pick the status from the dropdown |
| RemoveEmailAddress | Clears the customer's email address |
| DisableNotifications | Turns off notifications for the customer |
| AddTag / RemoveTag | Adds or removes the tag entered as the action value |
| SetCustomField | Sets a custom field — enter the action value as FieldName=Value |
| SetDataField | Sets a data field — enter the action value as PropertyName=Value |
Behaviours to be aware of:
- If no enabled rule matches, the bounce is only logged — the customer is left unchanged.
- If no customer can be matched to the failed recipient address, the rule's action is not performed.
- Rules can be edited, temporarily disabled, or deleted from the list at any time.
Caution: Destructive actions such as DeleteCustomer and RemoveEmailAddress run automatically and without confirmation. Start with a gentler action such as AddTag or DisableNotifications until you are confident your match conditions only catch genuine bounces.
Monitoring the Agent
The Recent Inbound Emails table on the Email Agent page lists the last 20 processed messages with their classification (Reply, Bounce, or Unknown), sender and subject. For a full audit trail, click View Agent Logs to open the Application Logs filtered to the Email Agent source — every processed message, applied rule and failure is recorded there.
Unknown Sender Processing
The email agent can turn inbound correspondence from unknown senders into new records. This is a rule-based feature — no AI provider is involved — and it is off by default.
To configure it:
- Enable the
UnknownSenderProcessingfeature toggle in Administration > Feature Toggles. - Open Settings > Email Agent and choose an
Unknown Sender Action in the Unknown Sender Handling section:
- None (default) — the message is only logged to the inbound email ledger; this is the behaviour when the toggle is off
- Create Customer — a customer is created from the sender and the mail body is posted to their notification history
- Create Lead — a lead is created from the sender and the mail body is logged as lead activity
Matching rules to be aware of:
- If a lead already exists with the sender's email address, the mail body is logged as lead activity regardless of the configured action, and no new record is created.
- New leads are assigned to the tenant's first campaign. If the tenant has no campaigns, lead creation is skipped and a warning is logged instead.
- The section is hidden on the Email Agent page while the toggle is disabled.
AI Email Assistant
The AI Email Assistant drafts replies to inbound correspondence and helps write templates. Everything in this section is gated by the AI feature toggle, which is disabled by default — enable it in
Administration > Feature Toggles.
While the toggle is off, all AI navigation entries are hidden and the pages return 404.
AI Settings
Administrators configure the assistant on the AI Settings page (admin dropdown, or the AI Assistant tile on the admin dashboard). Each tenant configures its own:
| Setting | Description |
|---|---|
| Provider | OpenAI, Anthropic, Kimi, OpenRouter, or an OpenAI-compatible endpoint |
| Model | Free-text model identifier with per-provider suggestions (for OpenRouter use its vendor/model naming, e.g. openai/gpt-4o-mini) |
| API Key | Stored encrypted per tenant; leave blank when saving to keep the existing key |
| Base URL | Optional override; defaults to api.openai.com, api.anthropic.com, api.moonshot.ai, or openrouter.ai. Required for an OpenAI-compatible endpoint — enter its full chat completions URL (e.g. http://localhost:11434/v1/chat/completions) |
| Reply agent prompt | System prompt controlling the tone and style of AI replies |
| Summary agent prompt | System prompt controlling how the AI summarises a customer's current position on the overview page |
| Max tokens | Upper bound on each generated completion |
| Auto-reply | Master switch for replying to inbound correspondence |
| Reply mode | Manual review queue or Automatic send |
| AI templates | Enables the Generate with AI button on template pages |
Use Test Connection to verify the provider, model, and key before relying on the assistant.
Security: The API key grants access to your AI provider account. It is stored encrypted, never logged, and redacted from error messages. Rotate it with your provider if it may have been exposed.
AI Auto-Reply
When the toggle is on, a configuration is saved, and auto-reply is enabled, the assistant answers inbound email on correspondence mailboxes only — never support mailboxes and never bounce messages. A reply is drafted after the inbound email has been logged to a customer (an existing one, or one just created by unknown sender processing).
Two reply modes:
- Manual review queue (default) — the drafted reply waits in the AI Reply Queue for a person to send or discard it
- Automatic send — the reply is sent immediately through the tenant's SMTP account and logged to the customer's history
Tip: Start with the Manual review queue. Switch to Automatic send only after you are happy with the quality of the drafted replies.
AI Reply Queue
Administrators open the queue from the admin dropdown or the AI Reply Queue dashboard tile. It lists pending AI replies page by page; open an item to see an excerpt of the original inbound email next to the drafted reply, which you can edit before sending.
- Send — delivers the (optionally edited) reply via the tenant's SMTP account, from the SMTP username address, and posts it to the customer's history
- Discard — drops the reply without sending anything
Items move from Pending to Sent or Discarded; sent and discarded items are never re-sent.
AI Template Generation
When the AI toggle is on, AI templates are enabled, and a configuration is saved, the Email Templates and SMS Templates edit pages show a Generate with AI button. Describe the template you want — audience, purpose, tone — and the assistant fills in the subject and body for you to review and adjust before saving. Nothing is stored or sent until you save the template yourself.
AI Customer Summary
The customer overview page shows an AI Summary card when the AI toggle is on, the AiCustomerSummary child toggle is on, and a configuration is saved. The assistant writes a short, factual summary of the customer's current position — balance and status, recent payments, recent communications, open support issues — based only on data already in the CRM. The Summary agent prompt on the AI Settings page controls how the summary is written.
The summary loads automatically after the page renders — asynchronously, so it never slows the page down — and a Regenerate Summary button refreshes it at any time. Each generation consumes provider tokens (one per page load while the toggle is on), which is why it has its own feature toggle. The text is a reading aid, not a record — it is never stored.
General Notes
Sometimes you just need to log an internal note. From the customer profile Actions menu, select General Note. Notes are stored in the customer's history and visible to all team members with access.