iachat/spec/enterprise/models
Vinay Keerthi 1fbdd68222
feat: Add company auto-association for contacts (CW-5726 Part 2) (#12711)
## Description

Implements real-time company auto-association for contacts based on
email domains. This is **Part 2** of the company model production
rollout (CW-5726).

**Task:**
- When a contact is created with a business email, automatically create
and associate a company from the email domain
- When a contact is updated with an email for the first time (email was
previously nil), associate with a company
- Preserve existing company associations when email changes to avoid
user confusion
- Skip free email providers and disposable domains

**Dependencies:**
⚠️ Requires PR #12657 (Part 1: Backfill migration) to be merged first

**Linear ticket:**
[CW-5726](https://linear.app/chatwoot/issue/CW-5726/company-model-setting-it-up-on-production)

## Type of change

- [x] New feature (non-breaking change which adds functionality)

## How Has This Been Tested?

- Service specs: Tests business email detection, company creation,
association logic, edge cases (existing companies, free emails, nil
emails)
- Integration specs: Tests full callback flow for contact create/update
scenarios
- All tests passing: 10 examples, 0 failures
- RuboCop: 0 offenses

## Checklist:

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules (PR #12657 pending)

---------

Co-authored-by: Sojan Jose <sojan@pepalo.com>
2025-11-03 20:36:13 +05:30
..
captain fix: Captain response builder not getting triggered (#12729) 2025-10-28 18:31:08 -07:00
channel feat(voice): Improved voice call creation flow [EE] (#12268) 2025-08-22 13:38:23 +02:00
concerns feat(ee): Captain custom http tools (#12584) 2025-10-06 07:53:15 -07:00
enterprise/concerns chore: Automate SSL with Cloudflare (#12021) 2025-07-24 13:09:06 +04:00
account_saml_settings_spec.rb feat: update users on SAML setup and destroy [CW-2958][CW-5612] (#12346) 2025-09-15 21:20:22 +05:30
account_spec.rb chore: Update account deletion email copy (#12317) 2025-08-31 16:01:41 +02:00
account_user_spec.rb feat: Add APIs to manage custom roles in Chatwoot (#9995) 2024-08-23 17:18:28 +05:30
agent_capacity_policy_spec.rb feat: Add agent capacity controllers (#12200) 2025-08-26 19:12:58 -07:00
applied_sla_spec.rb feat: Conversation API to return applied_sla and sla_events (#9174) 2024-04-01 23:30:07 +05:30
assignment_policy_spec.rb feat: Add assignment policies controllers with jbuilder views (#12199) 2025-08-18 19:15:21 -07:00
automation_rule_spec.rb feat: sla-2 add automation backend support for SLA (#8775) 2024-02-01 15:42:12 +05:30
company_spec.rb feat: Add company model and API with tests (#12548) 2025-10-08 07:53:43 -07:00
contact_company_association_spec.rb feat: Add company auto-association for contacts (CW-5726 Part 2) (#12711) 2025-11-03 20:36:13 +05:30
conversation_spec.rb fix: Do not enforce max_limits if inbox_auto_assignment is disabled (#11849) 2025-07-01 15:10:39 -07:00
copilot_message_spec.rb fix: Update specs, add background response job implementation for copilot threads (#11600) 2025-05-27 14:10:27 -06:00
copilot_thread_spec.rb feat: Add support for more tool, standardize copilot chat service (#11560) 2025-05-23 01:07:07 -07:00
custom_role_spec.rb feat: Add APIs to manage custom roles in Chatwoot (#9995) 2024-08-23 17:18:28 +05:30
inbox_capacity_limit_spec.rb feat: Add agent capacity controllers (#12200) 2025-08-26 19:12:58 -07:00
inbox_member_spec.rb feat: auditlog for team and inbox member updates (#7516) 2023-08-15 19:55:19 -07:00
inbox_spec.rb feat: MFA (#12290) 2025-09-18 20:19:24 +05:30
macro_spec.rb feat: add audit trail for macros (#7352) 2023-06-20 13:04:59 +05:30
message_spec.rb feat: Improve Captain interactions, activity messages (#11493) 2025-05-16 19:27:57 -07:00
sla_event_spec.rb feat: Conversation API to return applied_sla and sla_events (#9174) 2024-04-01 23:30:07 +05:30
sla_policy_spec.rb feat: sla 1 - refactor sla_policies model and add applied_sla model (#8602) 2024-01-23 23:48:02 +05:30
team_member_spec.rb feat: auditlog for team and inbox member updates (#7516) 2023-08-15 19:55:19 -07:00
team_spec.rb feat: Add audit trail events for team (#7285) 2023-06-09 17:30:36 -07:00
user_spec.rb chore: Move Enterprise pricing validation to on create (#8856) 2024-02-05 19:18:29 +05:30
webhook_spec.rb feat: Audit log APIs (#6434) 2023-03-01 20:02:58 +05:30