mirror of
https://github.com/chatwoot/chatwoot.git
synced 2026-06-04 21:02:35 +08:00
Standardizes the contact company import/filter/automation contract on `company_name`. Closes #14096 Revives #9907 ## Why Contact company is read across the current CRM/contact UI from `additional_attributes['company_name']`, but CSV import and a few backend filter/automation paths still used the older `company` key. That meant imported company values could be saved in a place the dashboard, sorting, filters, and automation conditions did not consistently read from. Based on the production data check, the legacy `company` automation configuration is effectively dead: the affected account did not have contacts populated with `additional_attributes['company']`. So this PR intentionally avoids adding long-term fallback behavior and uses `company_name` as the single key going forward. ## What changed - Contact CSV import now writes only `company_name` into `additional_attributes['company_name']`. - The example contact import CSV now uses the `company_name` header. - Contact company sorting/filter config now uses `company_name`. - Automation condition config now uses `company_name`. - Existing standard automation conditions with `attribute_key: 'company'` are migrated to `company_name`. - Existing saved contact filters with standard `attribute_key: 'company'` are migrated to `company_name`. - Custom attributes named `company` are preserved and are not rewritten by the migration. ## How to test - Import a contact CSV with a `company_name` column and confirm the Contact Company field is populated. - Sort contacts by Company and confirm imported contacts are ordered correctly. - Create/edit an automation with Company as a condition and confirm it saves with `company_name`. - Verify existing saved contact filters and automation rules using the old standard `company` key are migrated to `company_name`. --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Sojan Jose <sojan@pepalo.com> |
||
|---|---|---|
| .. | ||
| assets | ||
| audio | ||
| brand-assets | ||
| dashboard/images | ||
| downloads | ||
| integrations | ||
| 404.html | ||
| 422.html | ||
| 500.html | ||
| android-icon-36x36.png | ||
| android-icon-48x48.png | ||
| android-icon-72x72.png | ||
| android-icon-96x96.png | ||
| android-icon-144x144.png | ||
| android-icon-192x192.png | ||
| apple-icon-57x57.png | ||
| apple-icon-60x60.png | ||
| apple-icon-72x72.png | ||
| apple-icon-76x76.png | ||
| apple-icon-114x114.png | ||
| apple-icon-120x120.png | ||
| apple-icon-144x144.png | ||
| apple-icon-152x152.png | ||
| apple-icon-180x180.png | ||
| apple-icon-precomposed.png | ||
| apple-icon.png | ||
| apple-touch-icon-precomposed.png | ||
| apple-touch-icon.png | ||
| browserconfig.xml | ||
| favicon-16x16.png | ||
| favicon-32x32.png | ||
| favicon-96x96.png | ||
| favicon-512x512.png | ||
| favicon-badge-16x16.png | ||
| favicon-badge-32x32.png | ||
| favicon-badge-96x96.png | ||
| manifest.json | ||
| ms-icon-70x70.png | ||
| ms-icon-144x144.png | ||
| ms-icon-150x150.png | ||
| ms-icon-310x310.png | ||
| robots.txt | ||
| sw.js | ||