> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.tabs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.tabs.com/_mcp/server.

# Customer Ingestion

Customers can enter Tabs through several channels. In most setups, more than one applies.

## How customers get into Tabs

#### CRM sync

HubSpot and Salesforce syncs create customers automatically when a deal is marked as Closed-won. Then contracts link to the newly created customer in Tabs.

#### ERP import

During initial ERP setup, existing customers import from your connected ERP. Tabs continues to sync customer records on an ongoing basis.

#### Contract processing

When Tabs processes a contract, it may create a new customer if one doesn't already exist. If Tabs can't confidently match the contract to an existing record, you'll be asked to confirm the customer before sending invoices.

#### API or app

Create customers directly via the [Customers API](api:POST/v3/customers) or the **Create customer** button in the Tabs app. By default, new customers created via API also sync to your connected ERP.

Before you can send an invoice, the customer record needs a name, billing address, and primary billing email. If any of these are missing, invoice delivery and ERP sync may fail.

## Confirm customer

When Tabs processes a contract and creates a new customer, it sometimes needs you to verify the match before an invoice can be sent. This **Confirm customer** step appears during automated processing when Tabs isn't fully confident that the contract's customer maps to the right record.

You'll see this when:

* A contract creates a new customer
* Tabs can't confidently match that customer to an existing record
* The customer was created by AI rather than manually selected

To confirm, open the invoice, click **Confirm customer**, review the details, and confirm or adjust as needed. The invoice can't be sent until this step is complete. This prevents duplicate customers and incorrect ERP mappings.

Customers created via the CRM, ERP, API, or directly in Tabs do not require you to confirm the customer. This is only applicable for customers created directly through contract processing.

## ERP sync

Customer sync with your ERP is bi-directional:

* **ERP → Tabs** — existing customers import during setup and on ongoing syncs
* **Tabs → ERP** — new customers and updates created in Tabs push to your ERP automatically

If a customer exists in Tabs but not in your ERP, you'll see a **Missing in ERP** badge on the customer profile. Open the record and click **Push to ERP** to create it in your accounting system. ERP-linked workflows like invoicing and payment application require the customer to exist in both systems.

Tabs sends the following customer-level data to your ERP:

* Customer name
* Billing point of contact
* Billing and shipping addresses
* Custom fields (if configured)

Updates made in Tabs reflect in your ERP immediately. Updates made in your ERP sync back to Tabs on the next daily sync.

## Sub-customers

Sub-customers let you manage multiple locations or billing entities under a single parent account. This is useful when one company has separate invoicing per location but you want to keep them grouped under the same parent.

* Sub-customers display as `parent:sub-customer` in Tabs
* Each sub-customer can have its own billing address, contacts, and invoices
* Parent and sub-customers must share the same currency — your ERP may reject invoices when currencies don't match

Create sub-customers in the Tabs app or via [POST /v3/customers/\{id}/sub-customers](api:POST/v3/customers/\{id}/sub-customers).

## Related resources

* [Customer record](/customer-record) — fields and identifiers on each customer
* [Contract Ingestion & Integrations](/contract-ingestion) — how contracts link to customer records during processing
* [Tabs data model](/data-model) — entity relationships across the billing lifecycle