chatwoot/public
Ahmed Alwahib d43a87c9dc
feat: Add labels to contact import/export (#13313)
Adds label support to contact import and export so teams can carry
approved contact labels through CSV workflows. Imports accept a `labels`
column with labels that already exist in the account; multiple labels
should be entered as a quoted comma-separated CSV value, for example
`"customer,vip"`.

Imports are additive: they add labels to contacts and do not remove
labels already on a contact. Removing a label from the CSV row or
leaving the `labels` cell blank will not clear existing contact labels.
To remove a label, edit the contact directly.

## Closes

- Closes #8535

## How to test

1. Create a few contact labels in the account, such as `customer`,
`vip`, and `lead`.
2. Go to Contacts -> Import contacts and download the sample CSV.
3. Import contacts with a `labels` column. Use a single label like
`lead`, or quote multiple labels like `"customer,vip"`.
4. Confirm imported contacts are created with the expected labels.
5. Re-import an existing contact with a new label and confirm the new
label is added without removing existing labels.
6. Try a row with an unknown label, such as `"vip,unknown_label"`, and
confirm only that row is rejected in the failed records CSV while the
other valid rows are imported.
7. Export contacts and confirm the CSV includes a `labels` column with
comma-separated approved labels.

## What changed

- Contact exports include approved `labels` in the default CSV columns.
This adds a new default export column for CSV consumers.
- Contact imports parse `labels` as comma-separated values inside the
CSV cell.
- Imported labels are validated against labels that already exist in the
account.
- Rows with unknown labels are rejected with an `Unknown labels: ...`
error; valid rows in the same import continue to process.
- Imported labels are additive and do not remove existing contact
labels.
- Label application during import does not dispatch an additional
per-contact update event.
- The sample CSV includes an import-safe `labels` column. The modal
keeps the existing generic CSV import copy.

---------

Co-authored-by: Sojan Jose <sojan@pepalo.com>
2026-05-06 18:46:36 +05:30
..
assets chore(v5): update priority icons (#13905) 2026-03-26 09:20:36 +05:30
audio feat(ce): Add Year in review feature (#13078) 2025-12-15 17:24:45 -08:00
brand-assets chore: Improve signup flow, reduce the number of inputs (#13350) 2026-01-22 18:47:42 -08:00
dashboard/images feat: notion OAuth setup (#11765) 2025-06-26 19:16:06 +05:30
downloads feat: Add labels to contact import/export (#13313) 2026-05-06 18:46:36 +05:30
integrations feat: TikTok channel (#12741) 2025-12-17 07:54:50 -08:00
404.html fix: Replace default Rails error pages with custom designs (#13514) 2026-02-11 07:57:00 -08:00
422.html fix: Replace default Rails error pages with custom designs (#13514) 2026-02-11 07:57:00 -08:00
500.html fix: Replace default Rails error pages with custom designs (#13514) 2026-02-11 07:57:00 -08:00
android-icon-36x36.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
android-icon-48x48.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
android-icon-72x72.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
android-icon-96x96.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
android-icon-144x144.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
android-icon-192x192.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-icon-57x57.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-icon-60x60.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-icon-72x72.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-icon-76x76.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-icon-114x114.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-icon-120x120.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-icon-144x144.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-icon-152x152.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-icon-180x180.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-icon-precomposed.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-icon.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
apple-touch-icon-precomposed.png Initial Commit 2019-08-14 15:18:44 +05:30
apple-touch-icon.png Initial Commit 2019-08-14 15:18:44 +05:30
browserconfig.xml [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
favicon-16x16.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
favicon-32x32.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
favicon-96x96.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
favicon-512x512.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
favicon-badge-16x16.png Fix: Adds favicon badge for notification alert. (#2079) 2021-04-13 19:25:19 +05:30
favicon-badge-32x32.png Fix: Adds favicon badge for notification alert. (#2079) 2021-04-13 19:25:19 +05:30
favicon-badge-96x96.png Fix: Adds favicon badge for notification alert. (#2079) 2021-04-13 19:25:19 +05:30
manifest.json [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
ms-icon-70x70.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
ms-icon-144x144.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
ms-icon-150x150.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
ms-icon-310x310.png [Feature] Add PWA support (#157) 2019-10-18 12:37:09 +05:30
robots.txt chore: Block Search bots from rendering widget (#1331) 2020-10-10 11:48:31 +05:30
sw.js Feature: Add web push notification permission in frontend (#766) 2020-05-06 00:10:56 +05:30