{{ $t('INBOX_MGMT.ADD.WHATSAPP.MANUAL_SETUP.VERIFY.TITLE') }}
diff --git a/app/models/channel/whatsapp.rb b/app/models/channel/whatsapp.rb
index 32e168092..22ea68d87 100644
--- a/app/models/channel/whatsapp.rb
+++ b/app/models/channel/whatsapp.rb
@@ -8,7 +8,6 @@
# phone_number :string not null
# provider :string default("default")
# provider_config :jsonb
-# webhook_verified_at :datetime
# created_at :datetime not null
# updated_at :datetime not null
# account_id :integer not null
diff --git a/app/services/whatsapp/manual_webhook_status_service.rb b/app/services/whatsapp/manual_webhook_status_service.rb
index 79935ec4f..75528e20b 100644
--- a/app/services/whatsapp/manual_webhook_status_service.rb
+++ b/app/services/whatsapp/manual_webhook_status_service.rb
@@ -8,7 +8,7 @@ class Whatsapp::ManualWebhookStatusService
callback_configured = callback_configured?
{
- callback_verified: @channel.webhook_verified_at.present? || callback_configured,
+ callback_verified: callback_configured,
callback_configured: callback_configured,
callback_url: callback_url,
subscription_verified: subscription_verified?
diff --git a/db/migrate/20260711090000_add_webhook_verified_at_to_channel_whatsapp.rb b/db/migrate/20260711090000_add_webhook_verified_at_to_channel_whatsapp.rb
deleted file mode 100644
index b01919a12..000000000
--- a/db/migrate/20260711090000_add_webhook_verified_at_to_channel_whatsapp.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-class AddWebhookVerifiedAtToChannelWhatsapp < ActiveRecord::Migration[7.1]
- def change
- add_column :channel_whatsapp, :webhook_verified_at, :datetime
- end
-end
diff --git a/db/schema.rb b/db/schema.rb
index 0f42a802e..5e506a475 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema[7.1].define(version: 2026_07_11_090000) do
+ActiveRecord::Schema[7.1].define(version: 2026_07_06_215758) do
# These extensions should be enabled to support this database
enable_extension "pg_stat_statements"
enable_extension "pg_trgm"
@@ -623,7 +623,6 @@ ActiveRecord::Schema[7.1].define(version: 2026_07_11_090000) do
t.datetime "updated_at", null: false
t.jsonb "message_templates", default: {}
t.datetime "message_templates_last_updated", precision: nil
- t.datetime "webhook_verified_at"
t.index ["phone_number"], name: "index_channel_whatsapp_on_phone_number", unique: true
end
diff --git a/whatsapp_manual_connect_v2.md b/whatsapp_manual_connect_v2.md
index 195f9b556..b3456f98c 100644
--- a/whatsapp_manual_connect_v2.md
+++ b/whatsapp_manual_connect_v2.md
@@ -102,7 +102,7 @@ Inbox naming:
- Allow the administrator to edit the inbox name here.
- Do not introduce a separate `WhatsApp number name` field.
-Primary action: `Connect number`.
+Primary action: `Create inbox`.
### Step 5: Verify Connection
@@ -256,16 +256,9 @@ Return:
- Required subscribed fields configured.
- Last setup error in a sanitized form, if available.
-## Recording Webhook Verification
+## Checking Webhook Verification
-Add `webhook_verified_at` to `channel_whatsapp`.
-
-When `Webhooks::WhatsappController#verify` receives the correct verify token:
-
-1. Return Meta's challenge as it does today.
-2. Record `webhook_verified_at` for the matched channel without triggering remote provider validation.
-
-The connection screen should not mark the callback as verified until this timestamp is present. A successful outbound Graph API call by itself is not enough evidence that Meta reached the Chatwoot endpoint.
+Do not persist additional webhook verification state. Read the phone-level webhook configuration from Meta and compare its callback URL with the URL generated for the inbox.
Use the existing WABA subscription and phone-level callback APIs rather than asking the user to configure the callback manually in the normal path.
@@ -293,7 +286,6 @@ Expected files or responsibilities:
- Reuse `Whatsapp::WebhookSetupService` for the actual subscription and callback override.
- Extend `Whatsapp::FacebookApiClient` for paginated phone lookup and webhook-status reads where required.
- Add account-scoped routes.
-- Add `webhook_verified_at` to the WhatsApp channel schema.
- Check Enterprise overlays for affected controllers, serializers, routes, and inbox behavior before editing shared code.
## Out Of Scope