Contacts and the customer index
The contacts module is your complete customer index. Here you keep all the information about your customers — contact details, addresses, communication history, tasks, subscriptions and notification settings.
The contact overview
List view
The contacts page shows a paginated, searchable list of all your contacts:
| Column | Content |
|---|---|
| Name | Customer name (+ contact person for companies) |
| Email and phone | Contact details |
| Address | Primary address (street + city) |
| Created | When the contact was created |
Search and filtering
- Free-text search — search across name, email, phone and address
- Show blocked contacts — toggle, with the number of blocked contacts shown as a badge
Per-contact actions
Via the three-dot menu:
- Edit — open the contact for editing
- Convert lead to customer — if the contact is a lead
- Merge with another contact — combine two contacts
- Block — prevent new tasks for this customer
- Delete — soft-delete (recoverable)
The contact detail page
Click a contact to open the detail page with two panels:
Left sidebar
Contact details:
- Avatar with initials (automatically generated)
- Name and an optional status badge
- Source badge (e.g. "Facebook", "Webhook", "Manual")
Quick actions: Three buttons for instant contact:
- 📞 Call — opens the call integration
- 💬 SMS — opens the SMS composer
- ✉️ Email — opens the email composer
Duplicate warning: If the system detects a possible duplicate (same name, email or phone), a warning is shown with the option to merge the contacts.
Customer portal:
- Invitation status (not invited / pending / accepted / expired)
- Invite to portal button — sends an invitation so the customer can log in and see their tasks, invoices and rescheduling options
Notes: Free-text field for internal notes about the customer. Editable directly on the page.
Addresses: A customer can have multiple addresses — useful for companies with several locations or individuals with a summer house/office. Each address:
- Is searched and validated via DAWA (the Danish address register)
- Is automatically geocoded for accurate route planning
- Can have address notes (e.g. "Ring the bell at the back entrance")
Billing relations: View and manage billing relations if another contact pays for this customer's services.
Tabs
1. Tasks All tasks and subscriptions for this customer:
- History of every task (completed, scheduled, cancelled)
- Active subscriptions
- Create task and Create subscription buttons directly from here
2. Notifications Notification settings per customer:
- Enable/disable automatic notifications
- Channel — SMS, email or both
- Days before visit — how far in advance the customer should be notified
- Separate settings for:
- Tasks that require presence (e.g. plumbing work)
- Tasks that don't require presence (e.g. window cleaning)
3. Quotes Overview of every sent and deleted quote with status badges and actions.
4. Communication Full communication history — emails, SMS messages and internal notes in one continuous thread.
Contact fields
| Field | Description |
|---|---|
| Name | Customer or company name |
| Is company | Toggle on to mark as a business customer |
| Contact person | ATT field for companies (who should you contact?) |
| Primary email | |
| Phone | Primary phone (+45 format) |
| CVR | Danish CVR number (companies only) |
| Addresses | One or more addresses with geodata |
| Notes | Internal notes |
| Service time display | How the customer prefers to see service times |
| Notification preferences | Per-contact override of the default notifications |
If you use units, it's the contact's primary address that decides which geographic department the customer lands in.
Property view
From the contact's address you can open a map view with three perspectives:
| View | Source | Description |
|---|---|---|
| Satellite | Aerial photo | Standard bird's-eye view |
| Oblique | Kortforsyningen | Danish aerial photos taken at an angle — shows the building's facade |
| Street view | Street level | Street-level photo of the address |
Useful for:
- Assessing access conditions before the first visit
- Estimating the scope of the job (e.g. the garden's size)
- Briefing new team members about the property
Merge contacts
When you find two contacts that are the same customer:
- Click Merge on the duplicate warning (or pick it from the actions menu)
- The merge dialog shows both contacts side by side
- Pick which data to keep from each contact
- Click Merge — every task, subscription and piece of communication history is gathered under one contact
What's preserved when merging:
- All tasks and subscriptions
- All communication history
- All addresses
- The selected contact's master data
Block a customer
The block feature prevents new tasks for a problem customer:
- Click the three-dot menu → Block
- The contact shows a "blocked" badge
- Blocked contacts are hidden in the default list (but can be shown via the filter)
- Existing tasks are untouched
Unblock: Same menu → Unblock.
Contacts and billing
Clientflow supports flexible billing relations:
- Default: The customer pays for their own jobs
- Third party: Another contact pays (e.g. a property manager pays for the tenants' window cleaning)
Billing relations are set up from the contact's sidebar under "Billing relations".