---
title: Customers
section: features
updated: '2026-09-14'
summary: 'Customers are the end-client companies that use your PBX services. When a CRM is connected they are kept in step with it, and the list shows what each one owes, what they subscribe to, and whether they have agreed to call recording.'
---

> A **customer** is the end-client company you provision PBX services for, linked to a reseller and optionally to one or more PBXs.

## Overview

Customers sit between resellers and PBXs in the partner hierarchy. You create a customer record for a client company, then assign PBXs to it. Distributors can see customers across all their resellers but only the owning reseller can create or edit them.

## What it does

Typing a company name in the name field searches OpenStreetMap for matching businesses and suggests addresses. Picking a suggestion fills in the street, number, postal code, and city automatically. The search is scoped to the selected country, so set the country first.

Mark each customer as a **company** or an **individual**. Your CRM keeps that distinction too, so it is the one thing cockpit cannot guess for you.

## With a CRM connected

Connect your CRM under [Integrations](partner_integrations.md) and this page changes.

**Sync with your CRM** does both directions in one run, on a queue. It reads your CRM's customers in first, because your CRM owns new customers, then creates the ones you added here that it has never seen. Nothing in your CRM is deleted or overwritten by cockpit. A summary of the last run sits above the list, and **Management → CRM sync history** keeps the detail: what each run touched, per customer, with the before and after of every field it changed.

A customer you onboard here is sent to your CRM straight away rather than waiting for the next sync, so you can issue a consent for them immediately. If your CRM cannot be reached, the customer is still saved and goes over on the next run.

A customer that came from your CRM is **managed there**. Its name links to the record in your own instance, and cockpit will not let you edit or delete it here. A customer that only exists in cockpit keeps its local form and carries a small info icon saying it has not reached your CRM yet.

## What the list shows

- **Recording and AI** — whether either is switched on for the customer's PBXes, and where the call-recording consent stands: signed, requested, or not requested. With several PBXes the weakest state is shown, because one unsigned PBX is the fact worth knowing.
- **PBXes** — the customer's PBXes by name. Click them for the same rows the [PBXs](partner_pbxes.md) list shows, filtered to this customer.
- **Invoices** — what is outstanding, how many invoices are unpaid, and when the last one was raised, read live from your CRM.
- **Subscription** — the customer's current plan and what it recurs at.

Filters narrow the list by source (in your CRM or local only), unpaid invoices, whether AI is on, country, and when the customer was last synced.

## Row actions

- **Invoices** opens the customer's invoices, read from your CRM and held for fifteen minutes rather than stored here. Each invoice number opens its own record in your CRM.
- **Sync invoices** re-reads that one customer there and then, for a payment that has just landed in your CRM.
- **Activate AI** (or **AI settings**, once something is on) goes to the customer's PBX settings, on the tab where call recording and the AI features live. With several PBXes you choose which one, and each is listed with its own AI state and consent status.
- **Documents** lists the signed call-recording consents held for the customer, with a preview and a download for each.

**Invoices**, **Sync invoices** and **Documents** need a CRM: they read from it, or hold what was signed through it. Until one is [connected](partner_integrations.md) they are not offered. **Activate AI** is cockpit's own and is always there.

## See also

- [Integrations](partner_integrations.md) - connect the CRM that everything on this page reads from.
- [PBXs](partner_pbxes.md) - assign a PBX to a customer, and sign the call-recording consent that opens the AI features.
- [Resellers](partner_resellers.md) - every customer belongs to a reseller.

```yaml fields
name:
  label: Name
  tab: General
  hint: 'Company name for the customer. Start typing to trigger address autocomplete - selecting a result fills in the address fields.'
country_id:
  label: Country
  tab: General
  hint: 'Country where the customer is located. Also scopes the address autocomplete results.'
email:
  label: Email
  tab: General
  hint: 'Primary contact email address for the customer.'
phone_number:
  label: 'Phone number'
  tab: General
  hint: 'Primary phone number for the customer.'
street:
  label: Street
  tab: General
  hint: 'Street name of the customer address.'
'no':
  label: Number
  tab: General
  hint: 'House or building number.'
postal:
  label: 'Postal code'
  tab: General
  hint: 'Postal or ZIP code.'
city:
  label: City
  tab: General
  hint: 'City or town name.'
is_company:
  label: 'Contact type'
  tab: General
  hint: 'Whether this customer is a company or an individual. Your CRM holds the same distinction, so a customer sent there is created as whichever you pick.'
```
