mirror of
https://github.com/chatwoot/chatwoot.git
synced 2026-06-04 21:02:35 +08:00
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> |
||
|---|---|---|
| .. | ||
| import-contacts-sample.csv | ||