> For the complete documentation index, see [llms.txt](https://docs.spara.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.spara.com/developers/schema/data-model.md).

# Data Model: Objects & Fields

Spara organizes everything it knows about your buyers into five objects. Every API response, every webhook payload, and every record created by a CRM sync is one of these objects or a field on one.

<figure><img src="/files/2I84eDlwP2VmxSLgvprY" alt="" width="340"><figcaption><p>Spara's core objects. A crow's foot marks the "many" side of a relationship, and the dashed line marks an optional link.</p></figcaption></figure>

Every record belongs to exactly one Spara instance, and API keys are scoped to that instance, so a request never reaches another customer's records.

## Lead

A **Lead** is a single person on the buying side. Leads are the primary resource in the [Web API](/developers/spara-api/web-api.md) and the subject of every [Webhooks](/developers/spara-api/webhooks.md) event.

A Lead is analogous to a HubSpot **Contact**, or to a Salesforce **Lead** and **Contact** together. Spara keeps one record for a person regardless of where they sit in your funnel, so a Salesforce Lead and the Contact it converts into are the same object in Spara.

Leads are created when someone interacts with one of your agents through chat, phone, email, or SMS, when an anonymous visitor is deanonymized, when a CRM record syncs in, or when you create one through the API.

A Lead belongs to at most one Account and at most one Owner. Both are returned inline on the lead object, alongside the lead's own fields.

## Account

An **Account** is a company. It holds firmographic data such as company name, website, industry, employee count, annual revenue, and billing city, plus any custom account fields you define.

An Account is analogous to a Salesforce **Account** or a HubSpot **Company**.

One Account has many Leads and many Deals, and is assigned to at most one Owner. Accounts arrive through a [https://docs.spara.com/integrations/crm-integrations](https://docs.spara.com/integrations/crm-integrations "mention") or through the Leads API. Spara matches on the CRM record id, so repeated syncs and repeated API calls update the same Account rather than creating duplicates.

Accounts are visible in the app on the [https://docs.spara.com/platform/accounts](https://docs.spara.com/platform/accounts "mention") page.

## Owner

An **Owner** is the person on your team responsible for a record, typically the account executive who owns the relationship.

An Owner is analogous to the Salesforce **User** a record is assigned to, or to a HubSpot **Owner**.

One Owner has many Leads, many Accounts, and many Deals. The Owner on a Lead is the rep assigned to that person, and the Owner on an Account is the rep assigned to the company. They are usually the same record, but they do not have to be.

An Owner is a data record, not a login. When an Owner's email matches the email of a Spara [User](#user), Spara links the two automatically, which is what connects CRM ownership to the person who signs in to Spara.

Owners are visible in the app on the [https://docs.spara.com/platform/owners](https://docs.spara.com/platform/owners "mention") page.

## Deal

A **Deal** is an opportunity synced from your CRM: amount, stage, close date, currency, and whether it is open, closed, or won.

A Deal is analogous to a Salesforce **Opportunity** or a HubSpot **Deal**.

Deals belong to an Account and an Owner. Spara also links each Deal to the Leads it engaged, and that link is what produces the influenced pipeline and influenced revenue figures on [https://docs.spara.com/platform/analytics](https://docs.spara.com/platform/analytics "mention").

{% hint style="info" %}
Deals are read-only: Spara syncs them in from your CRM and never creates or edits them. They are not currently exposed through the Web API.
{% endhint %}

## User

A **User** is a person on your team with a Spara login. Users are managed in [**Settings > Team**](https://app.spara.co/organization/team), and they are the only object here that is not buyer-side data.

A User is analogous to a Salesforce or HubSpot **User**, with one difference worth knowing. Salesforce uses a single User object for both seats and record ownership, while Spara splits those roles across User and Owner. That is why the link between them is optional: a rep who owns CRM records but never signs in to Spara exists as an Owner with no User, and an admin who owns no records exists as a User with no Owner.

See [https://docs.spara.com/platform/settings/user-management](https://docs.spara.com/platform/settings/user-management "mention") for roles and invitations.

## Fields

Objects carry the relationships; **fields** carry the attributes. A field is a single piece of information stored on a Lead, an Account, or an Owner, such as a job title, an industry, or the answer to a question one of your agents asked.

Fields come from four places: activity Spara captures on its own (page visits, chat and call engagement), answers your agents gather in conversation, values synced from your CRM, and values you send through the API. A field gathered in conversation is a custom field, and it becomes available everywhere built-in fields are, including workflows, personalization, and analytics.

* For the catalog of built-in fields, see [https://docs.spara.com/platform/data-model](https://docs.spara.com/platform/data-model "mention") in the platform documentation.
* To define custom fields, or to see the fields your instance already has, open [**Data Model**](https://app.spara.co/data-model) in the app.
* To map fields to and from your CRM, use the Data Model Sync section of your [https://docs.spara.com/integrations/crm-integrations/hubspot-crm](https://docs.spara.com/integrations/crm-integrations/hubspot-crm "mention") or [https://docs.spara.com/integrations/crm-integrations/salesforce](https://docs.spara.com/integrations/crm-integrations/salesforce "mention") integration settings.

Custom account and owner fields must exist in your Data Model before the API will accept them. For where fields appear in a request or response, see [Web API](/developers/spara-api/web-api.md).

## FAQ

### Can a Lead belong to more than one Account?

No. A Lead has at most one Account and at most one Owner. A company with several buyers appears as one Account with many Leads.

### Why did a search return two Leads with the same email?

Spara does not merge Leads on email address, so the same person can appear more than once, for example once from a CRM sync and once from a chat conversation. A search by email returns every match, and each has its own id.

### Do I need a CRM integration to get Accounts and Owners?

No. A CRM integration populates them automatically, but you can also create and update both through the Leads API.

### Will syncing the same account twice create duplicates?

No, as long as the CRM record id is included. Spara matches Accounts and Owners on that id and updates the existing record. Without it, Spara updates the Account already linked to the Lead, or creates one if the Lead has none.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.spara.com/developers/schema/data-model.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
