> ## 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 Issues

> Duplicate contacts, import errors, missing fields, bulk delete, export, and re-sync.

Contacts are the backbone of every campaign and chat. This page walks through the most common contact problems and how to fix them.

## Duplicate contacts

**Symptom:** The same person appears twice in your contact list.

**How it happens:**

* Two imports ran with the same CSV.
* A contact messaged you before they were imported, creating an auto-contact.
* Two agents added the same person manually.

### Finding duplicates

<Steps>
  <Step title="Go to Contacts → All Contacts" />

  <Step title="Click 'Find duplicates'">
    Xobito groups contacts that share the same phone number or email.
  </Step>

  <Step title="Review each group">
    Decide which contact has the most complete information.
  </Step>
</Steps>

### Merging duplicates

<Steps>
  <Step title="Select the duplicates">
    Tick the two or more contacts you want to merge.
  </Step>

  <Step title="Click 'Merge'" />

  <Step title="Pick the 'primary' contact">
    All messages, notes, and history from the others are moved onto this one.
  </Step>

  <Step title="Confirm">
    The other contacts are deleted. The merge cannot be undone.
  </Step>
</Steps>

<Warning>
  Merges are **permanent**. If in doubt, export the duplicate contact first as backup.
</Warning>

## Import errors

**Symptom:** Your CSV import shows "0 imported" or partial counts with errors.

### The error file

After every import, Xobito gives you two files:

* `success.csv` — contacts that imported cleanly.
* `errors.csv` — rows that failed, with a reason column.

Open `errors.csv` and look at the **Reason** column to see what's wrong.

### Common import error reasons

<AccordionGroup>
  <Accordion title="Invalid phone number">
    Phone numbers must start with `+` and include a country code with no spaces or dashes.

    * Wrong: `(415) 555-1234`
    * Right: `+14155551234`
  </Accordion>

  <Accordion title="Duplicate phone number within the file">
    Two rows in your CSV share the same phone. Keep one, remove the other.
  </Accordion>

  <Accordion title="Missing required field">
    Phone number is always required. If you have a custom field marked required, every row must include it.
  </Accordion>

  <Accordion title="Field too long">
    Names limited to 100 characters, emails to 254. Long free-form fields are truncated.
  </Accordion>

  <Accordion title="Wrong encoding">
    Save as **CSV UTF-8** in Excel, not plain CSV. Otherwise accented characters like `é` import as `Ã©`.
  </Accordion>

  <Accordion title="Unknown column">
    The column header in your CSV doesn't match any field in Xobito. Either rename the header or map it manually on the import screen.
  </Accordion>
</AccordionGroup>

### Re-importing after fixing

<Steps>
  <Step title="Download the errors.csv" />

  <Step title="Fix the issues in Excel or a text editor">
    Update bad phone numbers, fill missing fields, remove duplicates.
  </Step>

  <Step title="Re-upload the fixed file">
    Only the corrected rows need to be re-uploaded — successful rows from the first run are already imported.
  </Step>
</Steps>

## Missing fields in imported contacts

**Symptom:** Contacts imported fine but some fields are empty.

**Likely causes:**

* CSV column not mapped to a Xobito field.
* Field name mismatch (e.g. CSV has "Phone Number", Xobito expects "phone").
* Custom field doesn't exist in Xobito yet.

### Fix

<Steps>
  <Step title="Check the mapping on import">
    On the import screen, make sure every relevant CSV column has a matching Xobito field in the dropdown.
  </Step>

  <Step title="Create custom fields first">
    Go to **Contacts → Custom Fields** and create any missing fields before importing.
  </Step>

  <Step title="Re-import with correct mapping">
    You can re-import the same CSV — Xobito will update existing contacts if the phone number matches.
  </Step>
</Steps>

<Tip>
  Xobito stores "updates by phone number" — re-importing a file won't create duplicates if the phone numbers match existing contacts; it'll fill in the new fields instead.
</Tip>

## Bulk delete

### Deleting a few contacts

<Steps>
  <Step title="Select the contacts">
    Tick the boxes next to their names in the contact list.
  </Step>

  <Step title="Click 'Delete'">
    Top action bar. Confirm.
  </Step>
</Steps>

### Deleting many contacts (e.g. 1,000+)

<Steps>
  <Step title="Filter to the contacts you want to delete">
    Use filters like group, status, or source.
  </Step>

  <Step title="Click 'Select all matching'">
    This selects every contact that matches — even those on other pages.
  </Step>

  <Step title="Click 'Bulk delete'">
    Xobito shows the total count. Confirm. The delete runs in the background; you'll get an in-app notification when it's done.
  </Step>
</Steps>

<Warning>
  Bulk delete is **permanent**. Consider exporting first (see below) as backup.
</Warning>

### Deleting all contacts

There's no single "delete everything" button on purpose — it's a destructive action. To delete all, select all, then bulk delete in batches.

## Exporting contacts

### Export all contacts

<Steps>
  <Step title="Go to Contacts → All Contacts" />

  <Step title="Click 'Export'">
    Pick CSV or Excel.
  </Step>

  <Step title="Choose fields">
    By default all fields are included; uncheck any you don't need.
  </Step>

  <Step title="Click 'Download'">
    For large exports (>10,000 contacts), Xobito emails you a link when it's ready.
  </Step>
</Steps>

### Export a filtered selection

First apply filters to narrow the list, then click **Export**. Only the filtered contacts are included.

### What's in the export

* All standard fields: name, phone, email, groups, status, source, created date, last message date.
* All custom fields.
* Opt-in and opt-out status.

<Note>
  Exports are accurate at the time you click **Export**. If contacts change after, download again.
</Note>

## Re-syncing after external changes

If you also keep contact data in another system (CRM, spreadsheet), you may need to reconcile changes.

### Update by re-importing

<Steps>
  <Step title="Export from your external system">
    Download a CSV from your CRM.
  </Step>

  <Step title="Keep the 'phone' column">
    Xobito uses phone as the unique key. All other columns update the matching contact.
  </Step>

  <Step title="Re-import">
    Contacts → Import → upload the CSV. Map columns as needed. Existing contacts with matching phone numbers are updated; new rows create new contacts.
  </Step>
</Steps>

### Use the API for automatic sync

If you need ongoing sync, use Xobito's API. See [API Reference](/api-reference/endpoints/list-contacts).

## Missing contacts

**Symptom:** A contact you remember adding is not in the list.

**Likely causes:**

* You're filtering by a group that doesn't include them.
* The contact was deleted.
* You're in the wrong view (e.g. "My contacts" vs. "All contacts").

### Fix

<Steps>
  <Step title="Clear all filters">
    Click **Clear filters** at the top of the contact list.
  </Step>

  <Step title="Search by phone number">
    Search is the fastest way to find any specific contact.
  </Step>

  <Step title="Check the audit log">
    **Team → Activity Log** shows when a contact was deleted and by whom.
  </Step>
</Steps>

<Tip>
  Contact deletes are immediate and permanent — there is no Trash view to restore from. Make a CSV export before bulk-deleting if you want recovery options.
</Tip>

## Opt-out workflows

Xobito does not currently auto-detect opt-out keywords or exclude flagged contacts from campaigns. To stop messaging a contact, edit their record and disable it, or delete it. Automatic opt-out is on the roadmap.

## Contact in wrong group

Move a contact between groups:

<Steps>
  <Step title="Open the contact" />

  <Step title="Edit the 'Groups' field">
    Add or remove groups from the chip list.
  </Step>

  <Step title="Save" />
</Steps>

For bulk group changes, filter the contacts then click **Bulk actions → Add to group / Remove from group**.

## Related

<CardGroup cols={2}>
  <Card title="Import contacts" icon="file-import" href="/contacts/import-csv">
    Step-by-step CSV import guide.
  </Card>

  <Card title="Message delivery" icon="paper-plane" href="/troubleshooting/message-delivery">
    Failed deliveries and bad numbers.
  </Card>

  <Card title="FAQ" icon="circle-question" href="/troubleshooting/faq">
    Frequently asked questions.
  </Card>
</CardGroup>
