Files
7d2f01e402 feat(whatsapp): unify embedded signup feature gating (#15106)
WhatsApp embedded signup now uses
`whatsapp_embedded_signup_inbox_creation` as the single Chatwoot Cloud
rollout gate for inbox creation, proactive reconfiguration, and
disconnected inbox reauthorization. The authorization endpoint enforces
the same gate, so the UI and backend remain consistent.

Self-hosted installations keep their existing behavior.

## Things to know

- This reuses the existing feature flag; there is no migration or schema
change.
- The feature is shown as “WhatsApp Embedded Signup Flow” in feature
management.
- `whatsapp_reconfigure` remains visible and honored for self-hosted
proactive reconfiguration to preserve existing accounts. It can be
deprecated after the self-hosted dependency is removed or migrated.

## How to test

1. On Chatwoot Cloud, enable `whatsapp_embedded_signup_inbox_creation`
for an account.
2. Confirm that new WhatsApp inbox creation, proactive reconfiguration,
and disconnected inbox reauthorization are available.
3. Disable the flag and confirm those entry points are hidden and
authorization requests are rejected.
4. On self-hosted, confirm proactive reconfiguration remains controlled
by the existing `whatsapp_reconfigure` account setting.

---------

Co-authored-by: Muhsin <12408980+muhsin-k@users.noreply.github.com>
2026-07-21 15:05:11 +04:00

271 lines
7.4 KiB
YAML

# DO NOT change the order of features EVER
############################################
# name: the name to be used internally in the code
# display_name: the name to be used in the UI
# enabled: whether the feature is enabled by default
# column: the account bitset column used to store the flag. Defaults to feature_flags.
# Use feature_flags_ext_1 for extension flags. Each bigint column supports 63 flags.
# help_url: the url to the help center article
# chatwoot_internal: whether the feature is internal to Chatwoot and should not be shown in the UI for other self hosted installations
# deprecated: purpose of feature flag is done, no need to show it in the UI anymore
#
# ADDING A NEW FEATURE FLAG:
# - The `feature_flags` column is FULL (63/63 slots used). Do NOT add to it.
# - New flags MUST set `column: feature_flags_ext_1` and be appended at the end.
# - Bit positions are persisted per column; never reorder or remove existing
# entries, and never change an existing feature's `column` after release.
- name: inbound_emails
display_name: Inbound Emails
enabled: true
- name: channel_email
display_name: Email Channel
enabled: true
help_url: https://chwt.app/hc/email
- name: channel_facebook
display_name: Facebook Channel
enabled: true
help_url: https://chwt.app/hc/fb
- name: conversation_unread_counts
display_name: Conversation Unread Counts
enabled: false
chatwoot_internal: true
- name: ip_lookup
display_name: IP Lookup
enabled: false
- name: disable_branding
display_name: Disable Branding
enabled: false
premium: true
- name: email_continuity_on_api_channel
display_name: Email Continuity on API Channel
enabled: false
- name: help_center
display_name: Help Center
enabled: true
help_url: https://chwt.app/hc/help-center
- name: agent_bots
display_name: Agent Bots
enabled: true
help_url: https://chwt.app/hc/agent-bots
- name: macros
display_name: Macros
enabled: true
- name: agent_management
display_name: Agent Management
enabled: true
- name: team_management
display_name: Team Management
enabled: true
help_url: https://chwt.app/hc/teams
- name: inbox_management
display_name: Inbox Management
enabled: true
- name: labels
display_name: Labels
enabled: true
help_url: https://chwt.app/hc/labels
- name: custom_attributes
display_name: Custom Attributes
enabled: true
help_url: https://chwt.app/hc/custom-attributes
- name: automations
display_name: Automations
enabled: true
- name: canned_responses
display_name: Canned Responses
enabled: true
help_url: https://chwt.app/hc/canned
- name: integrations
display_name: Integrations
enabled: true
help_url: https://chwt.app/hc/integrations
- name: voice_recorder
display_name: Voice Recorder
enabled: true
- name: report_rollup
display_name: Report Rollup
enabled: false
- name: channel_website
display_name: Website Channel
enabled: true
- name: campaigns
display_name: Campaigns
enabled: true
help_url: https://chwt.app/hc/campaigns
- name: reports
display_name: Reports
enabled: true
help_url: https://chwt.app/hc/reports
- name: crm
display_name: CRM
enabled: true
- name: auto_resolve_conversations
display_name: Auto Resolve Conversations
enabled: true
- name: custom_reply_email
display_name: Custom Reply Email
enabled: false
- name: custom_reply_domain
display_name: Custom Reply Domain
enabled: false
- name: audit_logs
display_name: Audit Logs
enabled: false
premium: true
- name: custom_tools
display_name: Custom Tools
enabled: false
premium: true
- name: message_reply_to
display_name: Message Reply To
enabled: false
deprecated: true
- name: branded_email_templates
display_name: Branded Email Templates
enabled: false
- name: inbox_view
display_name: Inbox View
enabled: false
chatwoot_internal: true
- name: sla
display_name: SLA
enabled: false
premium: true
help_url: https://chwt.app/hc/sla
- name: help_center_embedding_search
display_name: Help Center Embedding Search
enabled: false
premium: true
chatwoot_internal: true
- name: linear_integration
display_name: Linear Integration
enabled: false
- name: captain_integration
display_name: Captain
enabled: false
premium: true
- name: custom_roles
display_name: Custom Roles
enabled: false
premium: true
- name: chatwoot_v4
display_name: Chatwoot V4
enabled: true
- name: captain_v1_action_classifier
display_name: Captain V1 Action Classifier
enabled: false
premium: true
chatwoot_internal: true
- name: contact_chatwoot_support_team
display_name: Contact Chatwoot Support Team
enabled: true
chatwoot_internal: true
- name: shopify_integration
display_name: Shopify Integration
enabled: false
chatwoot_internal: true
- name: search_with_gin
display_name: Search messages with GIN
enabled: false
chatwoot_internal: true
- name: channel_instagram
display_name: Instagram Channel
enabled: true
- name: crm_integration
display_name: CRM Integration
enabled: false
- name: channel_voice
display_name: Voice Channel
enabled: false
premium: true
- name: notion_integration
display_name: Notion Integration
enabled: false
- name: captain_integration_v2
display_name: Captain V2
enabled: false
premium: true
- name: whatsapp_embedded_signup
display_name: WhatsApp Embedded Signup
enabled: false
deprecated: true
- name: whatsapp_campaign
display_name: WhatsApp Campaign
enabled: false
- name: crm_v2
display_name: CRM V2
enabled: false
chatwoot_internal: true
- name: assignment_v2
display_name: Assignment V2
enabled: true
- name: captain_document_auto_sync
display_name: Captain Document Auto Sync
enabled: false
premium: true
- name: advanced_search
display_name: Advanced Search
enabled: false
premium: true
- name: saml
display_name: SAML
enabled: false
premium: true
- name: advanced_search_indexing
display_name: Advanced Search Indexing
enabled: false
premium: true
chatwoot_internal: true
- name: reply_mailer_migration
# This feature is temporary only to migrate reply mailer to new email builder
# Once the migration is done, this feature can be removed
display_name: Reply Mailer Migration
enabled: false
chatwoot_internal: true
- name: unread_count_for_filters
display_name: Unread Count For Filters
enabled: false
chatwoot_internal: true
- name: companies
display_name: Companies
enabled: false
premium: true
- name: channel_tiktok
display_name: TikTok Channel
enabled: true
- name: csat_review_notes
display_name: CSAT Review Notes
enabled: false
premium: true
- name: captain_tasks
display_name: Captain Tasks
enabled: true
- name: conversation_required_attributes
display_name: Required Conversation Attributes
enabled: false
premium: true
- name: advanced_assignment
display_name: Advanced Assignment
enabled: false
premium: true
- name: whatsapp_manual_transfer
display_name: WhatsApp Manual Transfer
enabled: false
column: feature_flags_ext_1
- name: data_import
display_name: Data Import
enabled: false
column: feature_flags_ext_1
- name: api_and_webhooks
display_name: API and Webhooks
enabled: true
column: feature_flags_ext_1
- name: whatsapp_reconfigure
display_name: WhatsApp Reconfigure
enabled: false
column: feature_flags_ext_1
- name: whatsapp_embedded_signup_inbox_creation
display_name: WhatsApp Embedded Signup Flow
enabled: false
column: feature_flags_ext_1