Customer database
One record per customer, so the AI recognises whoever is calling instead of asking for details you already hold.
Before you start
- Nothing. Records are created automatically as SIMCOAI takes bookings, refunds and orders
- A decision on any extra fields your business needs beyond name, email, phone and company
What it changes on a call
The single most error-prone moment on any phone call is a customer spelling an email address down the line. If SIMCOAI already recognises the number they are ringing from, it does not have to ask.
- A customer callsSIMCOAI matches the number against your customer records.
- It uses what you already holdTheir name, email and anything you have added yourself.
- It reads back rather than askingThe customer confirms a detail instead of dictating one.
- The record stays currentAnything new they give is added; nothing already on file is overwritten by a blank.
Expected result
A returning customer is not asked to spell their email address again, and a booking or refund is attached to their history rather than standing alone.
Email, phone, or both
Every record needs at least one way to reach the customer. A record with neither cannot be matched to anybody and is refused.
| Detail | How it is matched |
|---|---|
| Email address | Exactly, ignoring capitals |
| Phone number | On the significant digits, so +447700900123, 07700 900123 and 44 7700 900123 are one customer |
| Both | Email takes precedence: it is given deliberately and identifies one person, where a number can be a shared line |
How SIMCOAI confirms who is calling
Recognising a caller and having checked who they are are two different things, and only the second lets the AI discuss what is already on an account. A phone number a caller reads out proves nothing - it is the one detail printed on the outside of a parcel.
| How they were identified | What the AI will do |
|---|---|
| They rang from a number on their record | Treated as confirmed. The phone network supplies the number before the caller speaks, so there is nothing for them to do. The AI answers about their account normally. |
| They gave the name and the email address on the account | Treated as confirmed, once both match. |
| They read back a code emailed to the address on the account | Treated as confirmed. This is offered when the other routes do not apply. |
| They gave their own email address or an order number | Not a full identity check, but they have identified themselves for those records specifically, so the AI helps with the ones that match. |
| They only said a phone number | Not accepted as proof. The AI may greet them by name and take a new booking, order or refund, but will not read the account back until they confirm. |
- The AI greets themBy name, if we believe we know who they are.
- It asks once, naturallyFor the name and the email address on the account - not as an interrogation, and not twice in a call.
- It checks bothAgainst the record, not against what they just said.
- The check is recordedAgainst that call only. It does not carry over to the next one.
Expected result
A regular ringing from their own mobile notices nothing. Anyone else is asked one short question before their account is discussed.
Choosing a customer on a record
Orders, refunds, bookings and escalations are attached to a customer rather than carrying their own loose copy of the details.
- Start typingSearch your customers by name, email or phone on any create or edit form.
- Pick the personThe record is attached to them, and their details come with it.
- Or add someone newEnter their details on the form and they join your customer list when you save.
Expected result
Every customer has their own page, showing their details, your custom fields, whether their identity has been confirmed, and everything they have ordered, booked, been refunded, escalated, called about or sent as proof.
Your own columns
Add the things your business needs that SIMCOAI does not ask for as standard - a flat number, a boiler model, a policy reference. They appear on every customer record and the AI can read them when it recognises a caller.
| Plan | Custom fields |
|---|---|
| Starter | 3 |
| Growth | 10 |
| Pro | 30 |
| Enterprise | By agreement |
Where the Customers page lives
Your customer list is under Operations › Customers in the dashboard, alongside the orders, refunds, bookings and escalations that point at it.
- Open OperationsFrom the left-hand navigation.
- Choose CustomersThe section tabs across the top of the page.
- Search, open or editSearch matches a name, company, email address or phone number, however the number is written.
Expected result
The list, an add form, your custom fields and the import and export tools are all on that one page.
By hand, or all at once
Three ways a customer gets onto your list, and you will use all three.
| How | When it happens |
|---|---|
| Automatically | Whenever SIMCOAI captures a booking, refund, order or escalation carrying an email address or phone number. Nothing to do. |
| By hand | The Add a customer form on the Customers page. Useful for somebody you have just spoken to. |
| From a file | A CSV import, for a list you already hold somewhere else. See below. |
Bringing a customer list in from a spreadsheet
Most businesses already hold their customers somewhere - another system, a spreadsheet, an export from a shop platform. Typing them in one at a time is why a customer list stays empty, and an empty list is exactly what makes the AI ask a regular to spell their email address.
- Download the templateOn the Customers page under Import and export. It carries the columns we read, plus any custom fields you have added, and one example row.
- Fill it in, or use your own exportYou do not have to use our template - see the column names below.
- Choose the file and importAnyone already on your list is matched and updated rather than added a second time.
- Read the reportIt names every row: added, updated, already on file, or skipped and why.
| Column | What we read |
|---|---|
name | The customer’s name. first_name and last_name are joined if there is no full name column. |
email | Their email address. A row with an address we cannot read is skipped and named rather than guessed at. |
phone | Any format. +447700900123, 07700 900123 and 44 7700 900123 are the same number. |
company | Their business, if you record one. |
notes | Anything your team should know when they call. |
status | active, archived or blocked. Defaults to active. |
tags | Separated by semicolons or commas. |
| Your custom fields | A column named after one of your own fields is read into it. |
- Common variations are understood, so an export from another system usually imports as it is:
Email Address,E-mail,Mobile,Telephone,Surname,Business,OrganisationandCommentsall land in the right place. - A column we do not recognise is listed in the report rather than silently dropped, so you can add a custom field with that name and import again.
- A blank cell never clears something already on the record. An import is usually a partial export, and treating a missing column as a deletion would quietly strip details you already hold.
- Up to 2,000 rows per file. A longer list imports in parts, and the report says so rather than stopping without a word.
Expected result
Re-importing the same file changes nothing and says so. That makes a regular export from another system safe to run again and again.
Taking your list out
The Export my customers button downloads your list as a CSV, in the same shape the import reads. Work on it and put it back.
- If a search is active, the export is what that search matched.
- Custom fields come out as their own columns.
- Your customers are yours. Exporting is always available, on every plan, whatever the state of your account.
Removing a customer
Deleting a customer removes the personal record.
Working with customers over the API
The same records are available to your own systems.
/customersList and search customers. Accepts search, status, limit and offset.
Requires scope read
/customers/searchMatch one customer by email or phone - the same match the AI makes on a call.
Requires scope read
/customersCreate a customer. Requires an email address or a phone number.
Requires scope write
/customers/:idUpdate a customer. Custom field values are merged, so a partial update never clears the ones it did not send.
Requires scope write
/customers/:id/historyEverything that customer has done - orders, refunds, bookings and escalations.
Requires scope read
/customers/fieldsYour custom field definitions, with how many of your plan allowance are in use.
Requires scope read
/customers/template.csvThe import template, including your own custom fields as columns.
Requires scope read
/customers/export.csvYour customer list as a CSV. Accepts the same search and status as the list.
Requires scope read
/customers/upload-csvImport a CSV as multipart form data under file. Answers with a per-row report rather than a count, so a skipped row can be named.
Requires scope write
curl -sS "https://api.simcoai.co.uk/customers/search?phone=%2B447700900123" \
-H "X-SIMCOAI-API-Key: $SIMCOAI_API_KEY"See also
- Bookings - appointments attached to a customer
- Refunds - refund requests attached to a customer
- Data handling - what is stored and for how long