Skip to main content

Customer CRM

Floor Walker keeps your customer database and shows it inside Flex. Agents see the customer next to every task; admins search and manage customers on the CRM page.

Customer panel next to a chat, with profile, contact channels and outreach buttons

The customer panel​

When an agent opens a voice, chat, SMS, WhatsApp or web chat task (or a follow-up reminder), the panel to the right of the task shows the customer. It replaces the standard Flex CRM area and has, from top to bottom:

  • Identity: name, the identifier the customer contacted you from (with Copy), and pills for the channels the customer has used. Buttons to Edit details and to merge the profile with another customer.
  • Details: email, company, last interaction, every contact channel (alias) on file, and notes.
  • Custom Fields: the fields your admins defined, grouped into sections. Read-only here; edit them with Edit details.
  • Work Items: the customer's cases and follow-up tasks. See Cases and tasks.
  • Recent Interactions: the last 10 calls and conversations, each with its AI summary. Expand one to see the full analysis, or open the transcript. See Interactions and AI insights.

Custom fields and recent interactions with AI summaries

How the customer is found​

The plugin takes an identifier from the task and looks it up:

TaskIdentifier used
Inbound call or conversationThe caller's number or address (from, then customer_phone, customerAddress, customers.email)
Outbound callThe number dialled (outbound_to, then to)
Dialer callThe lead's phone number
Follow-up reminderThe customer ID stored on the reminder

Identifiers are normalised before matching: a whatsapp: prefix is removed so WhatsApp and phone contacts from the same number match, phone numbers are reduced to + and digits, and email addresses are lower-cased.

If no customer matches, one is created automatically when the agent accepts the task, using the name on the task (or "Unknown"). A profile created this way can show a Pending verification card with Update details and Search & merge, so the agent can fill in the details or attach the contact to an existing customer.

If a task carries no phone number, email or customer ID, the panel says so and shows no customer.

Editing a customer​

Edit details switches the card to a form with name (required), email, company, notes and the custom fields. Custom-field values are checked when saved (format, required fields, allowed options) and errors are shown next to each field. A new email address is also added to the customer's contact channels.

Calling and messaging the customer​

If the customer has a phone number and outbound messaging is enabled, the profile shows Call, SMS and WhatsApp buttons. With several numbers on file, each button first asks which one.

  • Call starts an outbound call from Flex, using the configured default caller ID.
  • SMS opens a form with sender, recipient and message (up to 1600 characters).
  • WhatsApp opens a form with sender, an approved template and its variables, and a preview. Outside the 24-hour customer service window a template is required; inside it, a free-form message (up to 4096 characters) can be sent instead.

SMS and WhatsApp messages start a new conversation that is routed back to the agent who sent it.

These buttons are controlled by screen_recording.outbound in the Flex configuration: enabled, voice_enabled, sms_enabled, whatsapp_enabled (all on by default) and the default caller ID and senders (default_voice_caller_id, default_sms_sender, default_whatsapp_sender).

Identity resolution and merging​

A customer can be reached through several identifiers: phone numbers, email addresses, chat identities. Each identifier (alias) belongs to exactly one customer, and every task or interaction with that identifier is attached to that customer.

Contact aliases​

On the CRM page, a customer's Contact Aliases section lists every identifier. Admins can add one (type Phone, SMS, WhatsApp or Email, and the value) or remove one. The primary identifier is marked Primary and can't be removed. An identifier that already belongs to another customer can't be added; merge the two customers instead.

Merging duplicates​

When the same person ends up with two profiles (for example, one created from a phone call and one from a chat), merge them from the customer panel:

  1. Use the merge button on the profile, or Search & merge on a pending profile.
  2. Search for the existing customer and select it.
  3. Confirm. The customer of the current task is kept: its name, email and notes stay, and it receives all contact channels, interactions, cases, tasks and recordings of the other profile.

The other profile is marked as merged and can't be merged again; lookups by its old identifiers lead to the surviving profile. Merging can't be undone from the UI.

There is no automatic duplicate detection: duplicates are merged by hand.

The CRM page​

Users with the Flex admin role get a CRM item in the side navigation (when show_admin_view is on in the screen_recording configuration). The page has three tabs:

  • Interactions: all calls and conversations with their AI analysis and filters. See Interactions and AI insights.
  • Customers: search and customer detail, described below.
  • Tasks: follow-up tasks across all customers. See Cases and tasks.

The Settings button opens CRM Settings with the Prompt Templates and Custom Fields tabs.

The Customers tab of the CRM page

Searching customers​

Type a name, phone number or email and press Enter. An exact phone number, email or customer ID is found directly; otherwise the search matches part of the name, email, company, any contact alias and any custom field marked Searchable. Merged profiles are hidden. The first 50 matches are shown, newest first.

Customer detail​

Selecting a customer shows when they became a customer, their last contact and number of interactions, with these sections:

  • Profile: contact details, notes and custom fields, with Edit profile.
  • Contact Aliases: see Contact aliases.
  • Work Items: cases and tasks, as in the agent's panel.
  • Interactions: calls and chats with their AI analysis, newest first, with buttons to read the transcript and play the screen recording.

Custom fields​

Admins define extra customer fields in CRM Settings, Custom Fields. Fields apply to all customers and show up in the customer panel, the edit form and the customer detail.

Custom fields in CRM Settings

Field types​

Text, Text Area, Number, Currency, Date, Date & Time, Dropdown, Multi-Select, Checkbox, Phone, Email and URL.

Field settings​

SettingNotes
Display LabelWhat agents see. Required.
Field NameThe internal key: starts with a letter; letters, numbers and underscores only. Can't be changed later.
Field TypeOne of the types above. Can't be changed later.
RequiredThe profile can't be saved without it.
SearchableThe CRM customer search also matches this field.
PlaceholderHint text in the empty input.
GroupFields with the same group are shown together as a section (for example "Account", "Preferences").
Currency codeFor Currency: USD, EUR, GBP, JPY, CAD or AUD.
OptionsFor Dropdown and Multi-Select: one per line, as value:label.
Minimum / MaximumFor Number and Currency.
Min Length / Max LengthFor Text and Text Area.
Validation Pattern (Regex) and error messageFor Text and Text Area.

Use the arrows in the list to change the order in which fields appear. Reordering is disabled while the list is filtered by a search.

Deleting a field hides it but keeps the values already stored. Creating a field with the same name later brings them back.

Fields can also have a default value and conditional visibility (show a field only when another field equals, doesn't equal, contains, is empty or is not empty). The settings form has no controls for these yet; ask us to set them up.

Who can do what​

ActionWho
See and edit the customer on their task, merge profilesEveryone using Flex
CRM page, contact aliases, CRM SettingsUsers with the Flex admin role
Create, change, delete and reorder custom fieldsUsers with the Flex admin role

There is no bulk import or export of customers in the UI.