> ## Documentation Index
> Fetch the complete documentation index at: https://documents.xobito.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Contact Sources

> Track where each contact came from so you know which marketing channels are working.

A **source** records where a contact first joined your list. One contact, one source — usually set at the moment they enter your database and rarely changed later.

## Source record

Each source has:

* **Name** — the label shown in dropdowns and filters. Required, up to 255 characters, unique within your workspace.

That's it. Sources do **not** have a colour or description field — they are a simple name tag.

<Note>
  Xobito does not ship pre-seeded sources. You define them to match the channels you actually use.
</Note>

## Why sources matter

Without sources, you know you have thousands of contacts — but not whether they came from your website, a trade show, Facebook ads, or word-of-mouth. Sources answer:

* **"Which channel brings me the best customers?"**
* **"Is our social ad spend actually working?"**
* **"Which referral partner sent us the most leads this quarter?"**

Once sources are in place, you can filter the contact list and split campaign analytics by channel.

## Typical source examples

| Source                   | What it represents                 |
| ------------------------ | ---------------------------------- |
| `Website`                | Opted in from a form on your site  |
| `Landing page`           | A specific campaign page           |
| `Facebook Ad`            | Meta paid ads                      |
| `Instagram Ad`           | IG paid ads                        |
| `Google Ad`              | Search or display ads              |
| `Referral`               | Introduced by an existing customer |
| `Partner`                | Shared by a business partner       |
| `Walk-in`                | In-store or event pickup           |
| `Trade show`             | Event or conference                |
| `WhatsApp click-to-chat` | Clicked a `wa.me` link             |
| `Manual entry`           | Added by a staff member            |

<Tip>
  Resist making a source for every single ad. Keep the list at the **channel** level. Use [custom fields](/contacts/custom-fields) or groups to track specific campaigns or keywords.
</Tip>

## Source vs. Status vs. Group

Quick refresher:

| Concept    | Answers the question                | Per contact             |
| ---------- | ----------------------------------- | ----------------------- |
| **Source** | "Where did they come from?"         | One — usually fixed     |
| **Status** | "What stage are they at now?"       | One — changes over time |
| **Group**  | "Which segments do they belong to?" | Many                    |

## Open the Source library

In the sidebar, go to **Contacts → Source**. This is where you create and manage the list of sources your team can pick from.

## Create a source

<Steps>
  <Step title="Click 'Add Source'">
    Opens the source form.
  </Step>

  <Step title="Give it a name">
    Short, channel-focused — "Website", "Facebook Ad", "Referral". Must be unique within your workspace. Consistent naming is crucial for accurate reports.
  </Step>

  <Step title="Save">
    The source is immediately available in the contact form and CSV imports.
  </Step>
</Steps>

## Edit or delete a source

<Steps>
  <Step title="Open the Source library">
    **Contacts → Source**.
  </Step>

  <Step title="Edit or Delete">
    Renaming a source updates every contact that uses it. Deleting leaves the contacts with no source — reassign them first.
  </Step>
</Steps>

<Warning>
  Before deleting a source, bulk-update every contact using it to a different source. Otherwise you will lose that tracking data.
</Warning>

## Assign a source to a contact

### When adding a single contact

Pick a source from the dropdown on the add-contact form. The source field is required. See [Add a Contact](/contacts/add-contact).

### During CSV import

Include a `source_id` column in your CSV with the **numeric ID** of an existing source. See [Import from CSV](/contacts/import-csv).

### From automations

A **Bot Flow** can set a source when a contact interacts — for example, a contact who starts a chat via a specific `wa.me` link can be auto-tagged with a matching source. See [Bot Flows](/automations/bot-flows).

## Reporting on sources

* **Filter the contact list** — show only contacts from one specific channel.
* **Campaign analytics** — split delivery and read rates by source to see which channels engage best.
* **Dashboard** — new contacts can be grouped by source over time.

## Best practices

<AccordionGroup>
  <Accordion title="Always set a source">
    An untagged contact is a wasted marketing-spend signal. The source field is required, so you can't skip it — just make sure you pick the most accurate one.
  </Accordion>

  <Accordion title="Standardise names across your team">
    "FB Ad", "Facebook Ad", "facebook-ad", and "Meta Ad" will all create separate reports that are hard to reconcile. Write down the exact list of approved source names.
  </Accordion>

  <Accordion title="Review periodically">
    Remove sources you no longer use. Merge duplicates. Add new channels as you launch them.
  </Accordion>

  <Accordion title="Pair with unique click-to-chat links">
    Use `wa.me` click-to-chat links with unique greetings per channel — a Bot Flow can detect the greeting and auto-tag the source.
  </Accordion>

  <Accordion title="Don't change the source later">
    A contact's source should reflect how they first entered your database. Use status or custom fields for anything that evolves over time.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Statuses" icon="circle-dot" href="/contacts/statuses">
    Track each contact's lifecycle stage.
  </Card>

  <Card title="Groups" icon="users" href="/contacts/groups">
    Segment contacts for campaigns.
  </Card>

  <Card title="Custom fields" icon="file-pen" href="/contacts/custom-fields">
    Store any extra data you need about a contact.
  </Card>

  <Card title="Bot flows" icon="diagram-project" href="/automations/bot-flows">
    Automate source-tagging when contacts reach out.
  </Card>
</CardGroup>
