Files
gochat/docs/parity/frontend_contract_inventory.md
T

104 KiB

Frontend Contract Inventory

Generated: 2026-06-11
Source: reference/chatwoot/app/javascript/dashboard/api, reference/chatwoot/app/javascript/widget/api, reference/chatwoot/app/javascript/survey/api
Purpose: Phase 0 deliverable for GoChat ↔ Chatwoot/Woochat direct-connect alignment.

Scope

This inventory records the frontend API client contract that GoChat must satisfy without patching the reused Woochat/current Chatwoot frontend. It is intentionally route-and-owner focused; fixture tests and smoke runs should attach exact payload evidence to these rows as implementation proceeds.

Owner Summary

Owner Area Contract Entries
Auth/Profile/Account 26
Automation/Enterprise 8
CRM 25
CSAT/Survey 7
Captain/Copilot 12
Conversation/Message 27
Help Center 8
Inbox/Agents/Assignment 41
Integrations/Channels 14
Other 20
Reports/Audit 14
Widget 22

Contract Entries

Owner Area Frontend File Kind Resource / Path Scope Methods Seen GoChat Alignment Owner Status
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/CacheEnabledApiClient.js literal /api/v1/accounts/${this.accountIdFromRoute}/cache_keys explicit GET internal/handler/api/v1/account_handler_test.go::TestCacheKeys_Success; internal/ws/event_publisher_test.go::TestEventPublisher_AccountCacheInvalidatedChatwootPayloadShape Covered for raw cache_keys response and account-cache invalidation payload used by CacheEnabledApiClient.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/account.js literal /api/v1/accounts/${this.accountIdFromRoute}/cache_keys explicit GET, POST internal/handler/api/v1/account_handler_test.go::TestCacheKeys_Success; account update fixtures Covered for dashboard account cache-key fetch and account mutation/update fixtures; no frontend patch required.
CRM reference/chatwoot/app/javascript/dashboard/api/accountActions.js ApiClient actions account-scoped POST internal/handler/api/v1/contact_handler_crud_test.go::TestChatwootFrontendContactMergeImportExportContracts; TestMergePublishesBaseUpdateAndMergeeDeleteEvents Covered for Woochat contact merge payload, raw contact response, merge side effects, and contact update/delete realtime events.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/agentBots.js ApiClient agent_bots account-scoped POST, PATCH, DELETE internal/handler/api/v1/agent_bot_handler_test.go::TestAccountChatwootPayloadsAndRoutes; route parity exact for CRUD/avatar/reset actions Covered for account-scoped create/list/show/update/delete, multipart-compatible bind path, raw Chatwoot bot serializer keys, avatar delete, reset access token, reset secret, and account/global bot visibility boundaries.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/agentCapacityPolicies.js ApiClient agent_capacity_policies account-scoped GET, POST, PUT, DELETE internal/handler/api/v1/agent_capacity_handler_test.go::TestChatwootPolicyInboxLimitAndUserFlow; TestChatwootPolicyInboxLimitAndUserValidationErrors Covered for policy CRUD, nested users, nested inbox limits, Chatwoot request body keys, count fields, and frontend-safe validation/not-found envelopes.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/agents.js ApiClient agents account-scoped POST internal/handler/api/v1/agent_handler_test.go::TestCreateAgentChatwootFrontendPayload; agent list/order fixtures Covered for Woochat agent create response shape, raw Chatwoot agent serializer keys, role/availability/provider fields, and no envelope wrapping.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/assignableAgents.js ApiClient assignable_agents account-scoped GET internal/handler/api/v1/assignable_agent_handler_test.go::TestList_StandaloneResourceUsesFrontendInboxIDsQuery; TestList_ResponseStructure; multi-inbox intersection tests Covered for Woochat inbox_ids query shape, standalone account-scoped resource path, response structure, admin inclusion, deduplication, and multi-inbox intersection semantics.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/assignmentPolicies.js ApiClient assignment_policies account-scoped GET, POST, DELETE internal/handler/api/v1/assignment_policy_handler_test.go::TestPluralAssignmentPolicies_ChatwootPayloads; TestInboxAssignmentPolicy_ChatwootRoutes Covered for plural assignment-policy list payloads, assigned inbox counts, policy inbox listing, and account-scoped route compatibility.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/assignmentPolicies.js literal /api/v1/accounts/${this.accountIdFromRoute}/inboxes/${inboxId}/assignment_policy explicit GET, POST, DELETE internal/handler/api/v1/assignment_policy_handler_test.go::TestInboxAssignmentPolicy_ChatwootRoutes Covered for Woochat inbox assignment-policy set/show/delete literal paths and assignment_policy_id payload.
Automation/Enterprise reference/chatwoot/app/javascript/dashboard/api/attributes.js ApiClient custom_attribute_definitions account-scoped GET internal/handler/api/v1/custom_attribute_definition_handler_test.go::TestCustomAttributeDefinitionHandler_ListChatwootFrontendPayload; filter-by-model fixtures Covered for Woochat custom attribute list response shape, attribute_model filters, Chatwoot serializer keys, and raw array response.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/auditLogs.js ApiClient audit_logs account-scoped GET internal/handler/api/v1/audit_handler_test.go::TestList_ChatwootPayloadFiltersAndSerializer; pagination/order fixtures Covered for audit log list filters, Chatwoot serializer keys, account scope, fixed page size, pagination meta, and descending order.
Automation/Enterprise reference/chatwoot/app/javascript/dashboard/api/automation.js ApiClient automation_rules account-scoped POST internal/handler/api/v1/automation_rule_handler_test.go::TestChatwootFrontendCRUDCloneTogglePayloadsAndValidation Covered for Woochat automation CRUD, clone, toggle, Chatwoot payload keys, and validation envelopes.
Automation/Enterprise reference/chatwoot/app/javascript/dashboard/api/bulkActions.js ApiClient bulk_actions account-scoped standard CRUD internal/handler/api/v1/bulk_action_handler_test.go::TestBulkActionHandler_ConversationEnqueuesChatwootPayload; contact/invalid-type fixtures Covered for conversation/contact bulk action request bodies, queued Chatwoot payloads, and invalid-type error payloads.
Automation/Enterprise reference/chatwoot/app/javascript/dashboard/api/campaigns.js ApiClient campaigns account-scoped standard CRUD internal/handler/api/v1/campaign_handler_test.go::TestChatwootFrontendPayloadsAndLifecycleUseDisplayID; TestStartCreatesCampaignConversationsAndMessages Covered for Woochat campaign list/show/create/update/delete/start/stop payloads, display-ID lifecycle behavior, and campaign conversation/message side effects.
Automation/Enterprise reference/chatwoot/app/javascript/dashboard/api/cannedResponse.js ApiClient canned_responses account-scoped GET internal/handler/api/v1/canned_response_handler_test.go::TestList_Success; search/create/update/delete account-scope fixtures Covered for Woochat canned-response list/search raw arrays, create/update raw payloads, delete empty OK, and account scoping.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/assistant.js ApiClient captain/assistants account-scoped GET, POST internal/handler/api/v1/captain_assistant_handler_test.go::TestCaptainAssistantHandler_CRUDUsesChatwootPayloadShape; playground fallback/provider fixtures Covered for assistant CRUD/list/search payloads, inbox binding, playground request shape, account scope, disabled fallback, and provider-error fallback.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/bulkActions.js ApiClient captain/bulk_actions account-scoped standard CRUD internal/handler/api/v1/captain_resource_parity_handler_test.go::TestCaptainBulkActionHandler_ChatwootResourceActions; label-suggestion fixture Covered for AssistantResponse approve/reject bulk action, AssistantDocument sync bulk action, invalid action envelope, and task-style label suggestion execution.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/copilotMessages.js ApiClient captain/copilot_threads account-scoped GET, POST internal/handler/api/v1/copilot_thread_handler_test.go::TestCopilotThreadMessagesListAndCreateUseNestedPayloads; push payload fixtures Covered for nested copilot message list/create payloads, account/user scope, provider-disabled fallback, and Chatwoot event push shape.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/copilotThreads.js ApiClient captain/copilot_threads account-scoped standard CRUD internal/handler/api/v1/copilot_thread_handler_test.go::TestCopilotThreadCreateReturnsChatwootPayload; list/get/delete scope fixtures Covered for copilot thread create/list/get/delete payloads, user ordering/scope, assistant scope validation, provider-enabled and provider-disabled flows.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/customTools.js ApiClient captain/custom_tools account-scoped GET, POST, PUT, DELETE internal/handler/api/v1/captain_resource_parity_handler_test.go::TestCaptainCustomToolHandler_ChatwootToolPayloadsAndScope; test-tool fixture Covered for custom-tool list/show/create/update/delete payloads, admin-only auth config, slug generation, account scope, test-tool response, and validation envelopes.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/document.js ApiClient captain/documents account-scoped GET, POST internal/handler/api/v1/captain_resource_parity_handler_test.go::TestCaptainDocumentHandler_ChatwootDocumentPayloadsAndSync; service job fixtures Covered for document list/show/create/update/delete/sync/crawl payloads, assistant filters, parser/embedding job side effects, and account scope.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/inboxes.js ApiClient captain/assistants account-scoped GET, POST, DELETE internal/handler/api/v1/captain_assistant_handler_test.go::TestCaptainAssistantHandler_AccountScopedShowAndInboxBinding; conversation inbox-assistant fixtures Covered for assistant inbox binding/unbinding routes, account-scoped assistant show, and inbox assistant lookup used by conversations.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/preferences.js ApiClient captain/preferences account-scoped GET, PUT internal/handler/api/v1/captain_preference_handler_test.go::TestCaptainPreferencesGetReturnsRawChatwootConfig; update/validation fixtures Covered for raw Captain preference config, account model/feature merge behavior, non-admin rejection, invalid model validation, and account ID errors.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/response.js ApiClient captain/assistant_responses account-scoped GET internal/handler/api/v1/captain_resource_parity_handler_test.go::TestCaptainAssistantResponseHandler_ChatwootResponsePayloadsAndFilters; process-response fixtures Covered for assistant-response list/show/create/update/delete payloads, assistant/document/status/search filters, Captain::Document documentable normalization, and LLM process errors.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/scenarios.js ApiClient captain/assistants account-scoped GET, POST, PUT, DELETE internal/handler/api/v1/captain_resource_parity_handler_test.go::TestCaptainScenarioHandler_ChatwootScenarioPayloadsAndScope Covered for assistant-scoped scenario create/list/show/update/delete payloads, enabled filtering, nested assistant payload, and account scope.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/tasks.js ApiClient captain/tasks account-scoped POST internal/handler/api/v1/captain_task_handler_test.go::TestCaptainTaskHandler_Summarize_ChatwootRawPayload; extended task label/follow-up fixtures Covered for summarize/rewrite raw payloads, stream SSE shape, display-ID conversation lookup, disabled-provider response, label suggestion, and follow-up context update payloads.
Captain/Copilot reference/chatwoot/app/javascript/dashboard/api/captain/tools.js ApiClient captain/assistants/tools account-scoped GET internal/handler/api/v1/captain_resource_parity_handler_test.go::TestCaptainCustomToolHandler_ChatwootToolPayloadsAndScope; assistant tools route fixtures Covered for assistant tools listing backed by account-scoped custom tools and Chatwoot custom tool serializer shape.
Other reference/chatwoot/app/javascript/dashboard/api/changelog.js ApiClient changelog global GET reference/chatwoot/app/javascript/shared/constants/links.js::CHANGELOG_API_URL Not a GoChat service contract: Woochat calls the external Hub URL https://hub.2.chatwoot.com/changelogs directly via fetchFromHub; GoChat does not need an API-compatible backend route for direct-connect.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/channel/fbChannel.js ApiClient facebook_indicators account-scoped POST internal/handler/api/v1/facebook_callbacks_handler_test.go::TestFacebookCallbacks_RegisterFacebookPage; TestFacebookCallbacks_ReauthorizePage Covered for Facebook page registration and reauthorization payloads used by Woochat callbacks/register_facebook_page and callbacks/reauthorize_page.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/channel/googleClient.js ApiClient google account-scoped POST internal/handler/api/v1/email_oauth_authorization_test.go::TestGoogleAuthorization_ReturnsChatwootPayload; root OAuth callback fixtures Covered for Google authorization URL/state payloads and callback redirect/config persistence used by Woochat email channel setup.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/channel/instagramClient.js ApiClient instagram account-scoped POST internal/handler/api/v1/social_authorization_test.go::TestInstagramAuthorization_ReturnsChatwootPayload; root OAuth callback fixtures Covered for Instagram authorization URL/state payloads, callback config persistence/upsert, and settings redirect behavior.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/channel/microsoftClient.js ApiClient microsoft account-scoped POST internal/handler/api/v1/email_oauth_authorization_test.go::TestMicrosoftAuthorization_ReturnsChatwootPayload; email OAuth callback error fixtures Covered for Microsoft authorization URL/state payloads and callback provider-error frontend redirects without phantom inbox creation.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/channel/tiktokClient.js ApiClient tiktok account-scoped POST internal/handler/api/v1/tiktok_channel_handler_test.go::TestTikTokChannel_Create_ChatwootSetupPayloadAndConfig; root OAuth callback fixtures Covered for TikTok authorization/setup payloads, persisted channel config, callback upsert, and settings redirect behavior.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/channel/twilioChannel.js ApiClient channels/twilio_channel account-scoped standard CRUD internal/handler/api/v1/twilio_channel_handler_test.go::TestTwilioChannel_Create_Success; Twilio webhook/status fixtures Covered for Twilio channel create raw inbox payload, persisted channel config/linkage, inbound callback, and delivered/read/failed status webhook behavior.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/channel/twitterClient.js ApiClient twitter account-scoped POST internal/handler/api/v1/twitter_authorization_handler_test.go::TestTwitterAuthorization_ReturnsChatwootPayload; root OAuth callback fixtures Covered for Twitter authorization URL/state payloads, signed state callback matching, callback config persistence/upsert, and settings redirect behavior.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/channel/voice/voiceAPIClient.js ApiClient voice account-scoped standard CRUD internal/router/router_test.go::TestTwilioVoiceRoutesServeConferenceAndPersistCallbacks; internal/handler/api/v1/contact_handler_crud_test.go::TestContactHandlerCRUDTestSuite/TestInitiateCall_CreatesConversationCallAndVoiceMessage Covered for Woochat voice client token/join/leave conference routes and contact initiate-call payload used by useCallSession; provider calls remain feature-gated by configured Twilio credentials.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/channel/webChannel.js ApiClient inboxes account-scoped standard CRUD internal/handler/api/v1/inbox_handler_parity_test.go::TestInboxHandler_ChatwootSerializerParity; widget/admin config fixtures Covered for web-widget inbox create/list/show/update/delete serializer shape, channel settings, web widget config, and sensitive-field role gating.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/channel/whatsapp/whatsappCallsAPI.js ApiClient whatsapp_calls account-scoped GET, POST internal/handler/api/v1/whatsapp_call_handler_test.go::TestWhatsAppCallHandler_AccountRoutesMatchFrontendAPI; action/recording fixtures Covered for WhatsApp call show/initiate/accept/reject/terminate/upload-recording account routes and frontend payloads.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/channel/whatsappChannel.js ApiClient whatsapp account-scoped POST internal/service/whatsapp_authorization_service_test.go::TestWhatsAppAuthorization_CreateEmbeddedSignupInbox; TestWhatsAppAuthorization_ReauthorizesExistingInbox; handler route parity Covered for Woochat embedded signup and reauthorization POST /whatsapp/authorization payloads, success envelope, inbox linkage, and not-found/error envelopes.
CRM reference/chatwoot/app/javascript/dashboard/api/companies.js ApiClient companies account-scoped GET, POST, DELETE internal/handler/api/v1/crm_frontend_smoke_test.go::TestChatwootFrontendCRMSmoke; internal/handler/api/v1/company_handler_test.go Covered for Woochat company list/search/show/create/update, nested contacts/search/add/remove, conversations, notes, custom-attribute deletion, avatar deletion, raw payloads, pagination, and account scope.
CRM reference/chatwoot/app/javascript/dashboard/api/contactNotes.js ApiClient notes account-scoped standard CRUD internal/handler/api/v1/crm_frontend_smoke_test.go::TestChatwootFrontendCRMSmoke; internal/handler/api/v1/contact_handler_crud_test.go note CRUD fixtures Covered for Woochat contact notes list/create/delete route shape, raw note payloads, and contact/account scoping.
CRM reference/chatwoot/app/javascript/dashboard/api/contacts.js ApiClient contacts account-scoped GET, POST, PATCH, DELETE internal/handler/api/v1/crm_frontend_smoke_test.go::TestChatwootFrontendCRMSmoke; internal/handler/api/v1/contact_handler_crud_test.go::TestChatwootFrontendContactMergeImportExportContracts Covered for Woochat contact list/search/filter/active/show/create/update, labels, conversations, contactable inboxes, call initiation, import/export, merge, custom-attribute deletion, avatar deletion, raw payloads, pagination, and account scope.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/conversations.js ApiClient conversations account-scoped GET, POST internal/handler/api/v1/conversation_handler_test.go::TestUnreadCounts_Success; internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestUpdateLabels_Success; message/realtime fixtures Covered for Woochat conversation labels get/update, unread counts, core list/create/message serializer payloads, and realtime message/conversation event shapes.
CSAT/Survey reference/chatwoot/app/javascript/dashboard/api/csatReports.js ApiClient csat_survey_responses account-scoped GET internal/handler/api/v1/csat_survey_handler_test.go::TestCsatSurveyHandlerTestSuite/TestCSATFrontendContractShapes; internal/handler/api/v1/csat_metrics_handler_test.go Covered for Woochat report list/metrics/download params (since, until, user_ids, inbox_id, team_id, rating, sort=-created_at), payload shape, CSV download, and review-note update.
Automation/Enterprise reference/chatwoot/app/javascript/dashboard/api/customRole.js ApiClient custom_roles account-scoped standard CRUD internal/handler/api/v1/custom_role_handler_test.go::TestCustomRoleHandlerSuite; permission/profile fixtures Covered for Woochat custom-role list/create/show/update/delete raw payloads, permission serialization, account scope, and profile permission projection.
Automation/Enterprise reference/chatwoot/app/javascript/dashboard/api/customViews.js ApiClient custom_filters account-scoped GET, DELETE internal/handler/api/v1/custom_filter_handler_test.go::TestCustomFilterHandlerSuite Covered for Woochat custom-view list by filter_type, create/show/update/delete payloads, and account-scoped errors.
Other reference/chatwoot/app/javascript/dashboard/api/dashboardApps.js ApiClient dashboard_apps account-scoped standard CRUD internal/handler/api/v1/dashboard_app_handler_test.go::TestDashboardAppHandlerSuite Covered for Woochat dashboard-app list/create/show/update/delete raw payloads, raw request bodies, 204 delete, and account scope.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal /api/v1/profile explicit - internal/handler/api/v1/profile_handler_test.go::TestProfileHandlerSuite/TestGet_Success; update fixtures Covered for Woochat profile bootstrap and profile update payloads, user/account serializer keys, settings JSON, password update validation, and multipart profile form parity.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal /api/v1/profile/auto_offline explicit - internal/handler/api/v1/profile_handler_test.go::TestProfileHandlerSuite/TestSetAutoOffline_ReturnsChatwootUserSerializer Covered for Woochat auto-offline mutation request and raw Chatwoot user serializer response.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal /api/v1/profile/availability explicit - internal/handler/api/v1/profile_handler_test.go::TestProfileHandlerSuite/TestSetAvailability_ReturnsChatwootUserSerializer Covered for Woochat availability mutation request and raw Chatwoot user serializer response.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal /api/v1/profile/avatar explicit - internal/handler/api/v1/profile_handler_test.go::TestProfileHandlerSuite/TestUpdateAvatar_Success; TestDeleteAvatar_ReturnsChatwootUserSerializer Covered for Woochat profile avatar update/delete calls, raw Chatwoot user serializer response, persisted avatar clearing, and validation errors.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal /api/v1/profile/resend_confirmation explicit - internal/handler/api/v1/profile_handler_test.go::TestProfileHandlerSuite/TestResendConfirmation_DoesNotSendForConfirmedUser; invited/unconfirmed variants Covered for Woochat resend-confirmation success payloads and confirmed, unconfirmed, and invited-user mail side effects.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal /api/v1/profile/reset_access_token explicit - internal/handler/api/v1/profile_handler_test.go::TestProfileHandlerSuite/TestResetAccessToken_RegeneratesTokenInChatwootUserSerializer Covered for Woochat reset-access-token mutation and regenerated token in raw Chatwoot user serializer response.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal /api/v1/profile/set_active_account explicit - internal/handler/api/v1/profile_handler_test.go::TestProfileHandlerSuite/TestSetActiveAccount_UpdatesMembershipActiveAt; repository active-at fixtures Covered for Woochat active-account mutation payload, membership active_at persistence, and user serializer response.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal /auth/validate_token explicit - internal/handler/api/v1/auth_handler_test.go::TestChatwootAuthValidateTokenReturnsPayloadData; auth middleware token-header fixtures Covered for DeviseTokenAuth-compatible validate-token payload, exposed token headers, user data, and account membership keys.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal api/v1/accounts.json explicit - reference/chatwoot/app/javascript/dashboard/api/specs/endPoints.spec.js only; frontend import grep Not a current GoChat service contract: the register endpoint constant is only asserted by the frontend unit spec and no reused dashboard runtime module imports endPoints('register').
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal api/v1/accounts/${accountId}/callbacks/facebook_pages.json explicit - internal/handler/api/v1/facebook_callbacks_handler_test.go::TestFacebookCallbacks_FacebookPagesPayload Covered for Woochat Facebook page picker callback payload {data:{page_details,user_access_token}} and existing-page flags.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal api/v1/conversations.json explicit - reference/chatwoot/app/javascript/dashboard/api/specs/endPoints.spec.js only; frontend import grep Not a current GoChat service contract: the legacy me/getInbox endpoint constants are only asserted by the frontend unit spec; runtime conversation clients use account-scoped /api/v1/accounts/:account_id/conversations.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal auth/password explicit - internal/handler/api/v1/auth_handler_test.go::TestChatwootAuthResetPasswordReturnsReferenceMessage; password update fixtures Covered for Woochat reset-password request message, token persistence, and password update/reset-token validation.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/endPoints.js literal auth/sign_out explicit - internal/handler/api/v1/auth_handler_test.go::TestChatwootAuthSignOutRevokesRefreshSession Covered for Woochat sign-out route, refresh-session revocation, and empty success response behavior.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/enterprise/specs/account.spec.js literal /enterprise/api/v1/checkout explicit - auth/profile/account handlers and account cache routes Fixture covered by TestEnterpriseAccountLiteralFrontendPathsUseCurrentAccountContext
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/enterprise/specs/account.spec.js literal /enterprise/api/v1/limits explicit - auth/profile/account handlers and account cache routes Fixture covered by TestEnterpriseAccountLiteralFrontendPathsUseCurrentAccountContext
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/enterprise/specs/account.spec.js literal /enterprise/api/v1/subscription explicit - auth/profile/account handlers and account cache routes Fixture covered by TestEnterpriseAccountLiteralFrontendPathsUseCurrentAccountContext
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/enterprise/specs/account.spec.js literal /enterprise/api/v1/toggle_deletion explicit - auth/profile/account handlers and account cache routes Fixture covered by TestEnterpriseAccountLiteralFrontendPathsUseCurrentAccountContext
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/enterprise/specs/account.spec.js literal /enterprise/api/v1/topup_checkout explicit - auth/profile/account handlers and account cache routes Fixture covered by TestEnterpriseAccountLiteralFrontendPathsUseCurrentAccountContext
Help Center reference/chatwoot/app/javascript/dashboard/api/helpCenter/articles.js ApiClient articles account-scoped GET, POST, PATCH, DELETE internal/handler/api/v1/article_handler_test.go::TestArticleHandlerSuite/TestDashboardArticleCRUD_ChatwootFrontendPayloadsAndRoutes; bulk/reorder fixtures Covered for Woochat dashboard article list/search/show/create/update/delete, slug-scoped portal routes, raw frontend body mapping, reorder, bulk translate/status/category/delete actions, public JSON/markdown/pixel side effects, and account scope.
Help Center reference/chatwoot/app/javascript/dashboard/api/helpCenter/categories.js ApiClient categories account-scoped GET, POST, PATCH, DELETE internal/handler/api/v1/category_handler_test.go::TestCategoryHandlerSuite/TestCreate_RawFrontendPayloadAndSlugPortal; list/update/delete/reorder fixtures Covered for Woochat slug-scoped category list/create/update/delete/reorder, locale filtering, raw frontend payloads, and public category payloads.
Help Center reference/chatwoot/app/javascript/dashboard/api/helpCenter/portals.js ApiClient portals account-scoped GET, POST, PATCH, DELETE internal/handler/api/v1/portal_handler_test.go::TestPortalHandlerSuite/TestList_ReturnsChatwootPayloadEnvelope; update/delete/send-instructions fixtures Covered for Woochat portal list/get/update/delete-by-slug, logo/instructions/status-compatible routes, Chatwoot payload envelope, public redirect/get/sitemap, and archived portal filtering.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/inbox/conversation.js ApiClient conversations account-scoped GET, POST, PATCH, DELETE internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestList_Success; label/status/assignment/snooze/filter fixtures Covered for Woochat inbox conversation list/show/create/update/delete, filters/meta/search, labels, mute/unmute, status toggles, snooze, priority, team/agent assignment, transcript, and display-ID route behavior.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/inbox/message.js ApiClient conversations account-scoped GET, POST, DELETE internal/handler/api/v1/message_handler_test.go::TestMessageHandlerTestSuite/TestList_Success; create/delete/retry/translate fixtures Covered for Woochat message list/create/delete/retry/translate, route conversation precedence, outgoing defaults, multipart attachments, content attributes, sender fields, and Chatwoot serializer shape.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/inbox/message.js literal ${this.url}/${conversationId}/messages explicit GET, POST, DELETE internal/handler/api/v1/message_handler_test.go::TestMessageHandlerTestSuite/TestList_Success; create/delete fixtures Covered for literal nested Woochat message path, list pagination, create payloads, multipart uploads, delete response, and invalid conversation errors.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/inboxHealth.js ApiClient inboxes account-scoped GET, POST internal/handler/api/v1/inbox_handler_parity_test.go::TestInboxHandler_HealthReturnsWhatsAppCloudRawPayload; provider failure fixture Covered for Woochat inbox health success/failure payloads, WhatsApp Cloud raw fields, provider failure state, and account/inbox param validation.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/inboxMembers.js ApiClient inbox_members account-scoped PATCH internal/handler/api/v1/inbox_member_handler_test.go::TestInboxMemberHandlerSuite/TestAccountScopedInboxMembers_ChatwootPayloadAndDiffUpdate Covered for Woochat inbox member list/update payloads, diff semantics, account-scoped route, and assigned-agent serializer keys.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/inboxes.js ApiClient inboxes account-scoped GET, POST, DELETE internal/handler/api/v1/inbox_handler_parity_test.go::TestInboxHandler_ChatwootSerializerParity; create/update binding and avatar/campaign fixtures Covered for Woochat inbox list/show/create/update/delete, serializer shape, channel settings, sensitive field gating, create/update request binding, avatar delete validation, campaigns, and sync-template queued response.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/integrations/dyte.js ApiClient integrations/dyte account-scoped POST internal/handler/api/v1/dyte_integration_handler_test.go::TestDyteIntegrationHandlerCreateMeetingReturnsMessagePayload; participant fixture Covered for Woochat Dyte create-meeting and add-participant payloads, integration message content attributes, auth token response, and invalid message error.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/integrations/linear.js ApiClient integrations/linear account-scoped GET, POST internal/service/linear_integration_service_test.go::TestLinearIntegrationService_ChatwootFrontendPayloads; handler validation fixtures Covered for Woochat Linear teams, team entities, create/link/unlink issue, linked issues, search issue payloads, activity side effects, and provider error envelopes.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/integrations/shopify.js ApiClient integrations/shopify account-scoped GET internal/handler/api/v1/shopify_integration_handler_test.go::TestShopifyIntegration_Auth_ReturnsChatwootRedirectPayload; validation fixtures Covered for Woochat Shopify auth redirect payload, OAuth query fields, configured callback URL, provider-not-configured/validation envelopes; orders live provider path remains credential-gated.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/integrations.js ApiClient integrations/apps account-scoped GET, POST, PATCH, DELETE internal/handler/api/v1/integration_hook_handler_suite_test.go::TestIntegrationHookHandlerSuite/TestChatwootFrontendAppsAndHooksNoTrailingSlashPayloads; Slack/Shopify/service fixtures Covered for Woochat integrations apps list, hook create/delete, Slack connect/update/list-channels/delete routes, Shopify auth redirect payload, raw app/hook response shapes, no-trailing-slash frontend paths, and provider API behavior via fake Slack transport where needed.
CRM reference/chatwoot/app/javascript/dashboard/api/labels.js ApiClient labels account-scoped standard CRUD internal/handler/api/v1/label_handler_test.go::TestLabelHandlerSuite/TestListTags_Success; create/update/delete fixtures Covered for Woochat label list/create/update/delete payloads, raw name compatibility, account scoping, and conversation label association routes.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/liveReports.js ApiClient live_reports account-scoped GET internal/handler/api/v1/live_report_handler_test.go::TestLiveReportHandlerTestSuite/TestAPIV2LiveReports_ChatwootFrontendPayloadShapes; store-refresh fixture Covered for Woochat API v2 live report conversation metrics, grouped metrics, team filters, Chatwoot error shape, and store refresh request sequence.
Automation/Enterprise reference/chatwoot/app/javascript/dashboard/api/macros.js ApiClient macros account-scoped POST internal/handler/api/v1/macro_handler_test.go::TestMacroHandlerSuite/TestExecute_ChatwootFrontendAwaitsEmptyOKAndSupportsSingleConversationID; CRUD fixtures Covered for Woochat macro CRUD payloads, attachment action signed-upload serialization, execute route with single/multiple conversation IDs, display-ID mutation semantics, and empty OK response.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/mfa.js ApiClient profile/mfa account-scoped POST, DELETE internal/handler/api/v1/mfa_handler_test.go::TestMFAHandlerSuite/TestProfileMFA_EnableVerifyBackupAndDisableUseFrontendPayloads; status fixture Covered for Woochat MFA status/enable/verify/backup-code/disable payloads, raw Chatwoot response shapes, and validation errors.
Other reference/chatwoot/app/javascript/dashboard/api/notificationSubscription.js ApiClient notification_subscriptions global standard CRUD internal/handler/api/v1/notification_subscription_handler_test.go::TestNotificationSubscriptionCreateAcceptsPushHelperPayload; destroy fixtures Covered for Woochat push-helper create/update/destroy payloads, global and account-scoped routes, push-token deletion, Rails wrapper body, and empty OK delete behavior.
Other reference/chatwoot/app/javascript/dashboard/api/notifications.js ApiClient notifications account-scoped GET, POST, DELETE internal/handler/api/v1/notification_handler_test.go::TestNotificationHandler_List_ChatwootEnvelopeAndIncludes; mutation/realtime fixtures Covered for Woochat notification list envelope, actor serialization, unread/read/snooze/delete/destroy-all mutations, account/user scoping, and Chatwoot realtime payloads.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/notion_auth.js ApiClient notion account-scoped POST internal/handler/api/v1/notion_integration_handler_test.go::TestNotionIntegration_Authorization_ReturnsChatwootPayload; delete fixture Covered for Woochat Notion authorization URL payload, redirect URI, config validation, and integration delete empty OK behavior.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/onboarding.js ApiClient onboarding account-scoped PATCH internal/handler/api/v1/account_handler_test.go::TestUpdateOnboarding_Success; validation fixtures Covered for Woochat onboarding step PATCH route, account-scoped update side effect, response payload, and invalid-step validation.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/reports.js ApiClient reports account-scoped GET internal/handler/api/v1/analytics_handler_test.go::TestAnalyticsHandlerTestSuite/TestAPIV2Reports_AllFrontendEndpointShapes; report CSV/value fixtures Covered for Woochat reports API v2 index/summary/conversations/agents/inboxes/labels/teams/conversations_summary/conversation_traffic/bot_metrics/bot_summary endpoint shapes, timezone/value parity, CSV downloads, and outgoing-message grouped counts.
Other reference/chatwoot/app/javascript/dashboard/api/samlSettings.js ApiClient saml_settings account-scoped GET, POST, PUT, DELETE internal/handler/api/v1/account_saml_settings_handler_test.go::TestAccountSamlSettingsHandlerTestSuite/TestChatwootFrontendCollectionCRUDPayloads; route registration uses collection paths Covered for Woochat SAML settings collection GET/POST/PUT/DELETE, { saml_settings: ... } request wrapper, raw frontend-readable response payload, alias fields sso_url/certificate, and backward-compatible id routes.
Other reference/chatwoot/app/javascript/dashboard/api/search.js ApiClient search account-scoped GET internal/handler/api/v1/search_handler_test.go::TestSearchHandler_GlobalSearch_UsesReferenceResultTypes; live Meilisearch smoke evidence Covered for Woochat global search result types, conversations/messages/contacts/articles search payloads, reference filters, hydrated message/article payloads, and live Meilisearch smoke.
Automation/Enterprise reference/chatwoot/app/javascript/dashboard/api/sla.js ApiClient sla_policies account-scoped standard CRUD internal/handler/api/v1/sla_policy_handler_test.go::TestSlaPolicyHandler_List_Success; CRUD/inbox association fixtures Covered for Woochat SLA policy list/create/show/update/delete, validation, audit entries, inbox association payloads, and side effects.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/slaReports.js ApiClient applied_slas account-scoped GET internal/handler/api/v1/sla_policy_handler_test.go::TestSlaPolicyHandler_ListAppliedSlas_ChatwootPayloadAndFilters; metrics/download fixtures Covered for Woochat applied-SLA list filters, metrics report shape, download payload, and service-level missed/hit report filters.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/specs/account.spec.js literal /api/v1/accounts explicit - internal/handler/api/v1/account_handler_test.go::TestAccountHandlerTestSuite/TestCreate_Success; router route fixture Covered for Woochat account create literal path POST /api/v1/accounts, no-trailing-slash route registration, Chatwoot data.account_id response shape, and account_name alias.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/accountActions.spec.js literal /api/v1/actions/contact_merge explicit - internal/handler/api/v1/contact_handler_crud_test.go::TestChatwootFrontendContactMergeImportExportContracts Covered for frontend merge request body and Chatwoot raw contact response on the account-scoped actions path; bare spec path remains a frontend unit-test artifact without account context.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/agentCapacityPolicies.spec.js literal /api/v1/accounts/1/agent_capacity_policies/123/inbox_limits explicit - internal/handler/api/v1/agent_capacity_handler_test.go::TestAgentCapacityHandlerSuite/TestChatwootPolicyInboxLimitAndUserFlow; route dump Covered for Woochat create inbox-limit literal path, raw inbox_id/conversation_limit payload, duplicate validation, and registered account-scoped route.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/agentCapacityPolicies.spec.js literal /api/v1/accounts/1/agent_capacity_policies/123/inbox_limits/789 explicit - internal/handler/api/v1/agent_capacity_handler_test.go::TestAgentCapacityHandlerSuite/TestChatwootPolicyInboxLimitAndUserFlow; validation fixture Covered for Woochat update/delete inbox-limit literal paths, PUT/PATCH mutation payloads, raw updated limit serializer, and delete empty OK behavior.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/agentCapacityPolicies.spec.js literal /api/v1/accounts/1/agent_capacity_policies/123/users explicit - internal/handler/api/v1/agent_capacity_handler_test.go::TestAgentCapacityHandlerSuite/TestChatwootPolicyInboxLimitAndUserFlow; validation fixture Covered for Woochat capacity-policy get-users/add-user literal paths, user_id request body, raw assigned user payload, and list serializer.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/agentCapacityPolicies.spec.js literal /api/v1/accounts/1/agent_capacity_policies/123/users/456 explicit - internal/handler/api/v1/agent_capacity_handler_test.go::TestAgentCapacityHandlerSuite/TestChatwootPolicyInboxLimitAndUserFlow; validation fixture Covered for Woochat remove-user literal path, account/policy scoped deletion, post-delete list behavior, and not-found validation.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/agents.spec.js literal /api/v1/agents/bulk_create explicit - internal/handler/api/v1/agent_handler_test.go::TestAgentHandlerTestSuite/TestBulkCreate; grep of runtime callers Covered as a frontend unit-test-only literal: runtime agents.js is account-scoped under /api/v1/accounts/:account_id/agents/bulk_create; GoChat route and bulk-create payload/side effects are covered.
Help Center reference/chatwoot/app/javascript/dashboard/api/specs/article.spec.js literal /api/v1/portals/room-rental/articles/1 explicit - internal/handler/api/v1/article_handler_test.go::TestArticleHandlerSuite/TestDashboardArticleCRUD_ChatwootFrontendPayloadsAndRoutes; runtime grep Covered as frontend spec-only bare URL; runtime helpCenter/articles.js is account-scoped under /api/v1/accounts/:account_id/portals/:portal_slug/articles/:id, with show/update/delete payloads covered.
Help Center reference/chatwoot/app/javascript/dashboard/api/specs/article.spec.js literal /api/v1/portals/room-rental/articles/bulk_actions/update_category explicit - internal/handler/api/v1/article_handler_test.go::TestArticleHandlerSuite/TestBulkActions_FrontendRoutes; route dump Covered as frontend spec-only bare URL; runtime account-scoped bulk update-category route and { ids, category_id } request body are fixture-covered.
Help Center reference/chatwoot/app/javascript/dashboard/api/specs/article.spec.js literal /api/v1/portals/room-rental/articles?page=1&locale=en-US&status=published&author_id=1 explicit - internal/handler/api/v1/article_handler_test.go::TestArticleHandlerSuite/TestDashboardArticleCRUD_ChatwootFrontendPayloadsAndRoutes; route dump Covered as frontend spec-only bare URL; runtime account-scoped article list supports portal slug, status, locale, category/sort filters, payload array, and meta counts.
Help Center reference/chatwoot/app/javascript/dashboard/api/specs/article.spec.js literal /api/v1/portals/room-rental/articles?query=test explicit - internal/handler/api/v1/article_handler_test.go::TestArticleHandlerSuite/TestPublicSearch_ReturnsPublishedLocaleSearchArticlePayload; runtime grep Covered as frontend spec-only bare URL; runtime dashboard search popover and public help-center search routes return published locale-filtered search payloads with meta.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/assignableAgents.spec.js literal /api/v1/assignable_agents explicit GET internal/handler/api/v1/assignable_agent_handler_test.go::TestList_StandaloneResourceUsesFrontendInboxIDsQuery Covered as frontend unit-test URL shorthand; runtime route is account-scoped /api/v1/accounts/:account_id/assignable_agents with identical inbox_ids[] query semantics.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/assignmentPolicies.spec.js literal /api/v1/accounts/1/assignment_policies/123/inboxes explicit - internal/handler/api/v1/assignment_policy_handler_test.go::TestInboxAssignmentPolicy_ChatwootRoutes Covered for policy inbox listing path generated by Woochat assignment policy API.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/assignmentPolicies.spec.js literal /api/v1/accounts/1/inboxes/456/assignment_policy explicit - internal/handler/api/v1/assignment_policy_handler_test.go::TestInboxAssignmentPolicy_ChatwootRoutes Covered for inbox assignment-policy set/show/delete paths and assignment_policy_id payload generated by Woochat.
Automation/Enterprise reference/chatwoot/app/javascript/dashboard/api/specs/automation.spec.js literal /api/v1/automation_rules explicit - internal/handler/api/v1/automation_rule_handler_test.go::TestAutomationRuleHandlerTestSuite/TestChatwootFrontendCRUDCloneTogglePayloadsAndValidation; route dump Covered as frontend spec-only bare URL; runtime automation.js is account-scoped under /api/v1/accounts/:account_id/automation_rules, with list/create/update/delete/clone/toggle payloads covered.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/channel/fbChannel.spec.js literal /api/v1/callbacks/reauthorize_page explicit - internal/handler/api/v1/facebook_callbacks_handler_test.go::TestFacebookCallbacks_RegisterFacebookPage Covered as frontend unit-test shorthand; runtime route is account-scoped /api/v1/accounts/:account_id/callbacks/reauthorize_page with the same omniauth_token/inbox_id payload.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/channel/fbChannel.spec.js literal /api/v1/callbacks/register_facebook_page explicit - internal/handler/api/v1/facebook_callbacks_handler_test.go::TestFacebookCallbacks_RegisterFacebookPage Covered as frontend unit-test shorthand; runtime route is account-scoped /api/v1/accounts/:account_id/callbacks/register_facebook_page with Chatwoot page registration payload.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/companies.spec.js literal /api/v1/companies/1/avatar explicit GET internal/handler/api/v1/company_handler_test.go::TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes; route dump Covered as account-scoped runtime path /api/v1/accounts/:account_id/companies/:company_id/avatar; delete-avatar raw company payload is covered by TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes and route dump.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/companies.spec.js literal /api/v1/companies/1/contacts explicit GET internal/handler/api/v1/company_handler_test.go::TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes; route dump Covered as account-scoped runtime path /api/v1/accounts/:account_id/companies/:company_id/contacts; list/create with { contact_id } body and payload/meta shape are covered by TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/companies.spec.js literal /api/v1/companies/1/contacts/2 explicit GET internal/handler/api/v1/company_handler_test.go::TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes; route dump Covered as account-scoped runtime path /api/v1/accounts/:account_id/companies/:company_id/contacts/:contact_id; unlink empty OK and side effect are covered by TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/companies.spec.js literal /api/v1/companies/1/contacts/search?q=jane+%26+co&page=3 explicit GET internal/handler/api/v1/company_handler_test.go::TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes; route dump Covered as account-scoped runtime path /api/v1/accounts/:account_id/companies/:company_id/contacts/search; encoded query/page response envelope is covered by TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/companies.spec.js literal /api/v1/companies/1/contacts?page=2 explicit GET internal/handler/api/v1/company_handler_test.go::TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes; route dump Covered as account-scoped runtime path /api/v1/accounts/:account_id/companies/:company_id/contacts?page=2; paginated contact list envelope is covered by TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/companies.spec.js literal /api/v1/companies/1/destroy_custom_attributes explicit GET internal/handler/api/v1/company_handler_test.go::TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes; route dump Covered as account-scoped runtime path /api/v1/accounts/:account_id/companies/:company_id/destroy_custom_attributes; { custom_attributes } body and mutated payload are covered by TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/companies.spec.js literal /api/v1/companies/search?q=&page=1&sort=name explicit GET internal/handler/api/v1/company_handler_test.go::TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes; route dump Covered as account-scoped runtime path /api/v1/accounts/:account_id/companies/search; empty query validation behavior is covered by company search fixtures and route dump.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/companies.spec.js literal /api/v1/companies/search?q=acme+%26+co&page=2&sort=domain explicit GET internal/handler/api/v1/company_handler_test.go::TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes; route dump Covered as account-scoped runtime path /api/v1/accounts/:account_id/companies/search; encoded query/page/sort response envelope is covered by TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/companies.spec.js literal /api/v1/companies?page=1&sort=name explicit GET internal/handler/api/v1/company_handler_test.go::TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes; route dump Covered as account-scoped runtime path /api/v1/accounts/:account_id/companies?page=1&sort=name; list payload/meta and no-trailing-slash route are covered by TestCompanyHandlerSuite/TestChatwootCompanyFrontendLiteralSpecRuntimeRoutes.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/contacts.spec.js literal /api/v1/contacts/1/avatar explicit GET internal/handler/api/v1/contact_handler_crud_test.go::TestContactHandlerCRUDTestSuite/TestChatwootFrontendContactsSpecRuntimeRoutes; route dump Covered as frontend spec-only bare URL; runtime contacts.js is account-scoped under /api/v1/accounts/:account_id/contacts/:contact_id/avatar; DELETE clears avatar_url/thumbnail in Chatwoot payload shape.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/contacts.spec.js literal /api/v1/contacts/1/contactable_inboxes explicit GET internal/handler/api/v1/contact_handler_crud_test.go::TestContactHandlerCRUDTestSuite/TestChatwootFrontendContactsSpecRuntimeRoutes; route dump Covered as frontend spec-only bare URL; runtime account-scoped contactable_inboxes alias returns { payload: [{ inbox, source_id }] } for Woochat contact forms.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/contacts.spec.js literal /api/v1/contacts/1/conversations explicit GET internal/handler/api/v1/contact_handler_crud_test.go::TestContactHandlerCRUDTestSuite/TestChatwootFrontendContactsSpecRuntimeRoutes; route dump Covered as frontend spec-only bare URL; runtime account-scoped contact conversations return Chatwoot conversation payloads including meta, messages, and account/inbox IDs.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/contacts.spec.js literal /api/v1/contacts/1/destroy_custom_attributes explicit GET internal/handler/api/v1/contact_handler_crud_test.go::TestContactHandlerCRUDTestSuite/TestChatwootFrontendContactsSpecRuntimeRoutes; route dump Covered as frontend spec-only bare URL; runtime account-scoped destroy-custom-attributes route accepts { custom_attributes } and returns the updated contact payload.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/contacts.spec.js literal /api/v1/contacts/1/labels explicit GET internal/handler/api/v1/contact_handler_crud_test.go::TestContactHandlerCRUDTestSuite/TestChatwootFrontendContactsSpecRuntimeRoutes; route dump Covered as frontend spec-only bare URL; runtime account-scoped labels route covers GET and POST { labels } with raw label-array payloads.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/contacts.spec.js literal /api/v1/contacts/filter?include_contact_inboxes=false&page=1&sort=name explicit GET internal/handler/api/v1/contact_handler_crud_test.go::TestContactHandlerCRUDTestSuite/TestChatwootFrontendContactsSpecRuntimeRoutes; route dump Covered as frontend spec-only bare URL; runtime account-scoped filter route accepts Chatwoot filter payloads and honors include_contact_inboxes=false, page, and sort query params.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/contacts.spec.js literal /api/v1/contacts/import explicit GET internal/handler/api/v1/contact_handler_crud_test.go::TestContactHandlerCRUDTestSuite/TestChatwootFrontendContactsSpecRuntimeRoutes; route dump Covered as frontend spec-only bare URL; runtime account-scoped import route accepts multipart import_file, and missing-file validation returns Chatwoot-compatible 422 File is blank.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/contacts.spec.js literal /api/v1/contacts/search?include_contact_inboxes=false&page=1&sort=date&q=leads&labels[]=customer-support explicit GET internal/handler/api/v1/contact_handler_crud_test.go::TestContactHandlerCRUDTestSuite/TestChatwootFrontendContactsSpecRuntimeRoutes; route dump Covered as frontend spec-only bare URL; runtime account-scoped search supports sort=date, labels[], q, and include_contact_inboxes=false with payload/meta response.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/contacts.spec.js literal /api/v1/contacts?include_contact_inboxes=false&page=1&sort=name&labels[]=customer-support explicit GET internal/handler/api/v1/contact_handler_crud_test.go::TestContactHandlerCRUDTestSuite/TestChatwootFrontendContactsSpecRuntimeRoutes; route dump Covered as frontend spec-only bare URL; runtime account-scoped list supports label filtering and suppresses embedded contact inboxes when Woochat passes include_contact_inboxes=false.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/conversations.spec.js literal /api/v1/conversations/1/labels explicit - internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestChatwootFrontendConversationLabelsRuntimeRoutes; route dump Covered as frontend spec-only bare URL; runtime conversations.js is account-scoped under /api/v1/accounts/:account_id/conversations/:conversation_id/labels; GET returns { payload: [] } and POST { labels } returns { payload: { conversationId, labels } } for the Woochat conversationLabels store.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/conversations.spec.js literal /api/v1/conversations/unread_counts explicit - internal/handler/api/v1/conversation_handler_test.go::TestConversationHandlerTestSuite/TestUnreadCounts_Success; route dump Covered as frontend spec-only bare URL; runtime conversations.js is account-scoped under /api/v1/accounts/:account_id/conversations/unread_counts and returns Chatwoot { payload: { inboxes, labels, teams } } without the generic success wrapper.
CSAT/Survey reference/chatwoot/app/javascript/dashboard/api/specs/csatReports.spec.js literal /api/v1 explicit GET internal/handler/api/v1/csat_survey_handler_test.go::TestCSATFrontendContractShapes; route dump Covered as frontend spec-only ApiClient version assertion, not a runtime request; csatReports.js runtime calls are account-scoped below /api/v1/accounts/:account_id/csat_survey_responses and fixture-covered.
CSAT/Survey reference/chatwoot/app/javascript/dashboard/api/specs/csatReports.spec.js literal /api/v1/csat_survey_responses explicit GET internal/handler/api/v1/csat_survey_handler_test.go::TestCSATFrontendContractShapes; route dump Covered as frontend spec-only bare URL; runtime csatReports.js is account-scoped under /api/v1/accounts/:account_id/csat_survey_responses with page, since, until, sort, user_ids, inbox_id, team_id, and rating filters plus Chatwoot list item shape.
CSAT/Survey reference/chatwoot/app/javascript/dashboard/api/specs/csatReports.spec.js literal /api/v1/csat_survey_responses/download explicit GET internal/handler/api/v1/csat_survey_handler_test.go::TestCSATFrontendContractShapes; route dump Covered as frontend spec-only bare URL; runtime account-scoped download route accepts the Woochat report filters and returns Chatwoot CSV headers/content-disposition.
CSAT/Survey reference/chatwoot/app/javascript/dashboard/api/specs/csatReports.spec.js literal /api/v1/csat_survey_responses/metrics explicit GET internal/handler/api/v1/csat_survey_handler_test.go::TestCSATFrontendContractShapes; route dump Covered as frontend spec-only bare URL; runtime account-scoped metrics route accepts since, until, user_ids, inbox_id, team_id, and rating, and returns Chatwoot metric keys.
Auth/Profile/Account reference/chatwoot/app/javascript/dashboard/api/specs/endPoints.spec.js literal api/v1/accounts.json explicit - internal/handler/api/v1/account_handler_test.go::TestAccountHandlerTestSuite/TestCreate_Success; internal/handler/api/v1/account_handler_test.go::TestAccountHandlerTestSuite/TestCreate_ChatwootAccountName; route dump Covered as frontend spec-only legacy constant from endPoints.js; runtime account creation uses /api/v1/accounts/account-scoped handlers, with Chatwoot account_name alias and response payload covered.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/endPoints.spec.js literal api/v1/conversations.json explicit - internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestList_Success; route dump Covered as frontend spec-only legacy constant from endPoints.js; runtime conversation list is account-scoped under /api/v1/accounts/:account_id/conversations and returns Chatwoot list { data: { meta, payload } } shape.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations explicit GET internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestList_Success; route dump Covered as frontend spec-only bare URL; runtime inbox/conversation.js is account-scoped under /api/v1/accounts/:account_id/conversations and supports Woochat list params with Chatwoot { data: { meta, payload } } response shape.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/1/attachments explicit GET internal/handler/api/v1/conversation_handler_test.go::TestConversationHandlerTestSuite/TestListAttachmentsReturnsChatwootPayload; route dump Covered as frontend spec-only bare URL; runtime account-scoped attachments route returns Chatwoot { meta: { total_count }, payload } attachment items.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/12/assignments explicit GET internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestAssignTeam_WithChatwootAssigneeID; internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestAssignTeam_Success; route dump Covered as frontend spec-only bare URL; runtime account-scoped assignments route accepts Woochat assignee_id and team_id payloads and returns serialized user/team objects.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/12/toggle_status explicit GET internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestToggleStatus_Success; route dump Covered as frontend spec-only bare URL; runtime account-scoped toggle-status route accepts { status, snoozed_until } and returns Chatwoot success/current-status payload.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/12/toggle_typing_status explicit GET internal/handler/api/v1/conversation_handler_test.go::TestConversationHandlerTestSuite/TestToggleTypingStatus_ChatwootRouteSuccess; route dump Covered as frontend spec-only bare URL; runtime account-scoped toggle_typing_status route accepts { typing_status, is_private } and returns empty 200 like Chatwoot.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/12/update_last_seen explicit GET internal/handler/api/v1/conversation_handler_test.go::TestConversationHandlerTestSuite/TestUpdateLastSeen_SuccessMarksNotificationRead; route dump Covered as frontend spec-only bare URL; runtime account-scoped update-last-seen route returns empty 200 and marks matching notifications read.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/45/custom_attributes explicit GET internal/handler/api/v1/conversation_handler_test.go::TestConversationHandlerTestSuite/TestUpdateCustomAttributes_Success; route dump Covered as frontend spec-only bare URL; runtime account-scoped custom-attributes route accepts { custom_attributes } and returns raw { custom_attributes } without generic wrapper.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/45/mute explicit GET internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestMute_Success; route dump Covered as frontend spec-only bare URL; runtime account-scoped mute route returns the serialized conversation with muted: true.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/45/transcript explicit GET internal/handler/api/v1/conversation_handler_test.go::TestConversationHandlerTestSuite/TestTranscript_Success; route dump Covered as frontend spec-only bare URL; runtime account-scoped transcript route accepts { email } and returns empty 200.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/45/unmute explicit GET internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestUnmute_Success; route dump Covered as frontend spec-only bare URL; runtime account-scoped unmute route returns the serialized conversation with muted: false.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/filter explicit GET internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestFilter_Success; route dump Covered as frontend spec-only bare URL; runtime account-scoped filter route accepts Woochat filter payload/page params and returns Chatwoot { meta, payload } shape.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/meta explicit GET internal/handler/api/v1/conversation_handler_test.go::TestConversationHandlerTestSuite/TestMeta_Success; route dump Covered as frontend spec-only bare URL; runtime account-scoped meta route accepts Woochat finder params and returns { meta } counts.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/conversation.spec.js literal /api/v1/conversations/search explicit GET internal/handler/api/v1/conversation_handler_crud_test.go::TestConversationCrudTestSuite/TestSearch_Success; route dump Covered as frontend spec-only bare URL; runtime account-scoped search route accepts { q, page } query params and returns Chatwoot search { meta, payload } shape.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/inbox/message.spec.js literal /api/v1/conversations/12/messages explicit - internal/handler/api/v1/message_handler_test.go::TestMessageHandlerTestSuite/TestList_Success; internal/handler/api/v1/message_handler_test.go::TestMessageHandlerTestSuite/TestCreate_ChatwootFrontendPayloadDefaultsOutgoing; internal/handler/api/v1/message_handler_test.go::TestMessageHandlerTestSuite/TestCreate_MultipartAttachmentPersistsAndSerializes; route dump Covered as frontend spec-only bare URL; runtime inbox/message.js is account-scoped under /api/v1/accounts/:account_id/conversations/:conversation_id/messages and covers list, JSON create defaults, multipart attachments, content attributes, echo ID, private flag, sender, and Chatwoot message payload shape.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/inboxes.spec.js literal /api/v1/inboxes/2/avatar explicit - internal/handler/api/v1/inbox_agentbot_avatar_campaigns_test.go::TestInboxHandler_DeleteAvatar_ChatwootHeadOK; route dump Covered as frontend spec-only bare URL; runtime inboxes.js is account-scoped under /api/v1/accounts/:account_id/inboxes/:inbox_id/avatar and returns Chatwoot head-OK while clearing avatar_url.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/inboxes.spec.js literal /api/v1/inboxes/2/campaigns explicit - internal/handler/api/v1/inbox_agentbot_avatar_campaigns_test.go::TestInboxHandler_ListCampaigns_ChatwootPayload; route dump Covered as frontend spec-only bare URL; runtime account-scoped campaigns route returns inbox-filtered { campaigns: [...] } payload for Woochat inbox campaign panels.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/inboxes.spec.js literal /api/v1/inboxes/2/sync_templates explicit - internal/handler/api/v1/inbox_handler_test.go::TestInboxSyncTemplates_ChatwootQueuedResponse; route dump Covered as frontend spec-only bare URL; runtime account-scoped sync-templates route returns Chatwoot queued message response and does not expose provider template internals.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/specs/integrations/dyte.spec.js literal /api/v1/integrations/dyte/add_participant_to_meeting explicit - internal/handler/api/v1/dyte_integration_handler_test.go::TestDyteIntegrationHandlerAddParticipantReturnsAuthToken; route dump Covered as frontend spec-only bare URL; runtime account-scoped Dyte add-participant route accepts message_id/name/email and returns provider auth_token payload without frontend patches.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/specs/integrations/dyte.spec.js literal /api/v1/integrations/dyte/create_a_meeting explicit - internal/handler/api/v1/dyte_integration_handler_test.go::TestDyteIntegrationHandlerCreateMeetingReturnsMessagePayload; route dump Covered as frontend spec-only bare URL; runtime account-scoped Dyte create-meeting route creates an integrations message and returns Chatwoot message payload with Dyte meeting attributes.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/specs/integrations/linear.spec.js literal /api/v1/integrations/linear/create_issue explicit - internal/handler/api/v1/linear_integration_handler_test.go::TestLinearIntegration_ChatwootFrontendRuntimeRoutes/create_issue; route dump Covered as frontend spec-only bare URL; runtime account-scoped Linear create-issue route accepts Woochat JSON body and returns raw { id, title, identifier } provider shape via fake GraphQL fixture.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/specs/integrations/linear.spec.js literal /api/v1/integrations/linear/link_issue explicit - internal/handler/api/v1/linear_integration_handler_test.go::TestLinearIntegration_ChatwootFrontendRuntimeRoutes/link_issue; route dump Covered as frontend spec-only bare URL; runtime account-scoped Linear link-issue route accepts { issue_id, conversation_id, title } and returns raw { id, link, link_id }.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/integrations/linear.spec.js literal /api/v1/integrations/linear/linked_issues?conversation_id=1 explicit - internal/handler/api/v1/linear_integration_handler_test.go::TestLinearIntegration_ChatwootFrontendRuntimeRoutes/linked_issues; route dump Covered as frontend spec-only bare URL; runtime account-scoped Linear linked-issues route uses conversation_id query and returns raw linked attachment array.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/specs/integrations/linear.spec.js literal /api/v1/integrations/linear/search_issue?q=query explicit - internal/handler/api/v1/linear_integration_handler_test.go::TestLinearIntegration_ChatwootFrontendRuntimeRoutes/search_issue; route dump Covered as frontend spec-only bare URL; runtime account-scoped Linear search route preserves q and returns raw issue array.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/integrations/linear.spec.js literal /api/v1/integrations/linear/team_entities?team_id=1 explicit - internal/handler/api/v1/linear_integration_handler_test.go::TestLinearIntegration_ChatwootFrontendRuntimeRoutes/team_entities; route dump Covered as frontend spec-only bare URL; runtime account-scoped Linear team-entities route preserves team_id and returns { users, projects, states, labels }.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/integrations/linear.spec.js literal /api/v1/integrations/linear/teams explicit - internal/handler/api/v1/linear_integration_handler_test.go::TestLinearIntegration_ChatwootFrontendRuntimeRoutes/teams; route dump Covered as frontend spec-only bare URL; runtime account-scoped Linear teams route returns raw team array.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/specs/integrations/linear.spec.js literal /api/v1/integrations/linear/unlink_issue explicit - internal/handler/api/v1/linear_integration_handler_test.go::TestLinearIntegration_ChatwootFrontendRuntimeRoutes/unlink_issue; route dump Covered as frontend spec-only bare URL; runtime account-scoped Linear unlink route accepts Woochat { link_id, issue_id, conversation_id } body and returns raw { link_id }.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/specs/integrations.spec.js literal /api/v1/integrations/2 explicit DELETE internal/handler/api/v1/integration_hook_handler_suite_test.go::TestChatwootFrontendAppsAndHooksNoTrailingSlashPayloads; route dump Covered as frontend spec-only bare URL; runtime account-scoped integrations use hook/app routes and delete without trailing slash returns empty 200 for Woochat store cleanup.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/specs/integrations.spec.js literal /api/v1/integrations/hooks explicit DELETE internal/handler/api/v1/integration_hook_handler_suite_test.go::TestChatwootFrontendAppsAndHooksNoTrailingSlashPayloads; route dump Covered as frontend spec-only bare URL; runtime account-scoped create-hook route accepts { app_id, settings } without trailing slash and returns raw hook payload.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/specs/integrations.spec.js literal /api/v1/integrations/hooks/2 explicit DELETE internal/handler/api/v1/integration_hook_handler_suite_test.go::TestChatwootFrontendAppsAndHooksNoTrailingSlashPayloads; route dump Covered as frontend spec-only bare URL; runtime account-scoped delete-hook route accepts no trailing slash and returns empty 200.
Integrations/Channels reference/chatwoot/app/javascript/dashboard/api/specs/integrations.spec.js literal /api/v1/integrations/slack explicit DELETE internal/handler/api/v1/slack_integration_handler_test.go::TestSlackIntegration_Create_NoTrailingSlash_ReturnsRawAppPayload; internal/handler/api/v1/slack_integration_handler_test.go::TestSlackIntegration_Delete_NoTrailingSlash_ReturnsEmptyOK; route dump Covered as frontend spec-only bare URL; runtime account-scoped Slack create/delete routes work without trailing slash, return raw app payload on create, and empty 200 on delete.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/integrations.spec.js literal /api/v1/integrations/slack/list_all_channels explicit DELETE internal/handler/api/v1/slack_integration_handler_test.go::TestSlackIntegration_ListAllChannels_NoTrailingSlash_ReturnsChannelArray; route dump Covered as frontend spec-only bare URL; runtime account-scoped Slack list-all-channels route proxies provider channels through a fake HTTP client and returns raw channel array.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/labels.spec.js literal /api/v1/labels explicit - internal/handler/api/v1/label_handler_test.go::TestLabelHandlerSuite/TestListTags_Success; internal/handler/api/v1/label_handler_test.go::TestLabelHandlerSuite/TestCreateTag_RawNameCompatibility; internal/handler/api/v1/label_handler_test.go::TestLabelHandlerSuite/TestUpdateTag_ChatwootPayloadAndAccountScope; internal/handler/api/v1/label_handler_test.go::TestLabelHandlerSuite/TestDeleteTag_ReturnsOKAndRemovesAssociations; route dump Covered as frontend spec-only bare URL; runtime account-scoped labels route supports list/create/update/delete and returns Chatwoot raw tag payloads without generic success wrapper.
Automation/Enterprise reference/chatwoot/app/javascript/dashboard/api/specs/macros.spec.js literal /api/v1/macros explicit - internal/handler/api/v1/macro_handler_test.go::TestMacroHandlerSuite/TestList_Empty; internal/handler/api/v1/macro_handler_test.go::TestMacroHandlerSuite/TestCreate_Success; internal/handler/api/v1/macro_handler_test.go::TestMacroHandlerSuite/TestUpdateDeleteAuthorizationAndPayload; route dump Covered as frontend spec-only bare URL; runtime account-scoped macros route supports list/create/update/delete and Chatwoot macro payload fields/actions used by Woochat.
Other reference/chatwoot/app/javascript/dashboard/api/specs/notifications.spec.js literal /api/v1/notifications explicit GET, DELETE internal/handler/api/v1/notification_handler_test.go::TestNotificationHandler_List_ChatwootEnvelopeAndIncludes; route dump Covered as frontend spec-only bare URL; runtime account-scoped notification list accepts Chatwoot include/sort params and returns { meta, payload }.
Other reference/chatwoot/app/javascript/dashboard/api/specs/notifications.spec.js literal /api/v1/notifications/1 explicit GET, DELETE internal/handler/api/v1/notification_handler_test.go::TestNotificationGet; internal/handler/api/v1/notification_handler_test.go::TestNotificationSoftDelete; route dump Covered as frontend spec-only bare URL; runtime account-scoped show/delete routes return serialized notifications and soft-delete account-scoped records.
Other reference/chatwoot/app/javascript/dashboard/api/specs/notifications.spec.js literal /api/v1/notifications/1/notifications explicit GET, DELETE internal/handler/api/v1/notification_handler_test.go::TestNotificationHandler_List_ChatwootEnvelopeAndIncludes; route dump Covered as frontend spec-only literal from the JS helper; runtime Woochat flow uses account-scoped notification collection and actor serialization fixtures.
Other reference/chatwoot/app/javascript/dashboard/api/specs/notifications.spec.js literal /api/v1/notifications/1/snooze explicit GET, DELETE internal/handler/api/v1/notification_handler_test.go::TestNotificationHandler_SnoozeWithDB; route dump Covered as frontend spec-only bare URL; runtime account-scoped snooze route accepts { snoozed_until } and returns the updated Chatwoot notification payload.
Other reference/chatwoot/app/javascript/dashboard/api/specs/notifications.spec.js literal /api/v1/notifications/destroy_all explicit GET, DELETE internal/handler/api/v1/notification_handler_test.go::TestNotificationHandler_DestroyAllWithDB; internal/handler/api/v1/notification_handler_test.go::TestNotificationHandler_DestroyAll_ReadOnly; route dump Covered as frontend spec-only bare URL; runtime account-scoped destroy-all route accepts Woochat body filters and returns empty OK while preserving read-only filter semantics.
Other reference/chatwoot/app/javascript/dashboard/api/specs/notifications.spec.js literal /api/v1/notifications/read_all explicit GET, DELETE internal/handler/api/v1/notification_handler_test.go::TestNotificationReadAllWithDB; internal/handler/api/v1/notification_handler_test.go::TestNotificationHandler_MarkAllRead_PrimaryActorOnly; route dump Covered as frontend spec-only bare URL; runtime account-scoped read-all route supports full read and primary actor filters used by Woochat.
Other reference/chatwoot/app/javascript/dashboard/api/specs/notifications.spec.js literal /api/v1/notifications/unread_count explicit GET, DELETE internal/handler/api/v1/notification_handler_test.go::TestNotificationHandler_UnreadWithDB; internal/handler/api/v1/notification_handler_test.go::TestNotificationUnreadCountIsAccountScoped; route dump Covered as frontend spec-only bare URL; runtime account-scoped unread-count route returns { count } and enforces account scope.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/specs/reports.spec.js literal /api/v2 explicit - internal/handler/api/v1/analytics_handler_test.go::TestAnalyticsHandlerTestSuite/TestAPIV2Reports_ChatwootPayloadShapes; route dump Covered as frontend spec-only ApiClient version assertion; runtime reports are account-scoped under /api/v2/accounts/:account_id/reports....
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/specs/reports.spec.js literal /api/v2/reports explicit - internal/handler/api/v1/analytics_handler_test.go::TestAnalyticsHandlerTestSuite/TestAPIV2Reports_ChatwootPayloadShapes; route dump Covered as frontend spec-only bare URL; runtime account-scoped APIV2 reports route accepts metric/since/until/type/group_by/timezone_offset and returns Chatwoot timeseries points.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/reports.spec.js literal /api/v2/reports/agents explicit - internal/handler/api/v1/analytics_handler_test.go::TestAnalyticsHandlerTestSuite/TestAPIV2Reports_ChatwootPayloadShapes; route dump Covered as frontend spec-only bare URL; runtime account-scoped agent reports route returns Chatwoot CSV headers/shape.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/specs/reports.spec.js literal /api/v2/reports/bot_metrics explicit - internal/handler/api/v1/analytics_handler_test.go::TestAnalyticsHandlerTestSuite/TestAPIV2Reports_AllFrontendEndpointShapes; route dump Covered as frontend spec-only bare URL; runtime account-scoped bot-metrics route returns Chatwoot JSON metric keys.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/specs/reports.spec.js literal /api/v2/reports/bot_summary explicit - internal/handler/api/v1/analytics_handler_test.go::TestAnalyticsHandlerTestSuite/TestAPIV2Reports_AllFrontendEndpointShapes; route dump Covered as frontend spec-only bare URL; runtime account-scoped bot-summary route accepts group_by/business_hours and returns Chatwoot summary keys.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/reports.spec.js literal /api/v2/reports/conversations explicit - internal/handler/api/v1/analytics_handler_test.go::TestAnalyticsHandlerTestSuite/TestAPIV2Reports_AllFrontendEndpointShapes; route dump Covered as frontend spec-only bare URL; runtime account-scoped conversation reports route returns Chatwoot conversation report rows.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/reports.spec.js literal /api/v2/reports/inboxes explicit - internal/handler/api/v1/analytics_handler_test.go::TestAnalyticsHandlerTestSuite/TestAPIV2Reports_AllFrontendEndpointShapes; route dump Covered as frontend spec-only bare URL; runtime account-scoped inbox reports route returns Chatwoot CSV headers/shape.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/reports.spec.js literal /api/v2/reports/labels explicit - internal/handler/api/v1/analytics_handler_test.go::TestAnalyticsHandlerTestSuite/TestAPIV2Reports_AllFrontendEndpointShapes; route dump Covered as frontend spec-only bare URL; runtime account-scoped label reports route returns Chatwoot CSV headers/shape.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/specs/reports.spec.js literal /api/v2/reports/summary explicit - internal/handler/api/v1/analytics_handler_test.go::TestAnalyticsHandlerTestSuite/TestAPIV2Reports_ChatwootPayloadShapes; route dump Covered as frontend spec-only bare URL; runtime account-scoped summary route returns Chatwoot summary keys and counts.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/reports.spec.js literal /api/v2/reports/teams explicit - internal/handler/api/v1/analytics_handler_test.go::TestAnalyticsHandlerTestSuite/TestAPIV2Reports_AllFrontendEndpointShapes; route dump Covered as frontend spec-only bare URL; runtime account-scoped team reports route returns Chatwoot CSV headers/shape.
Other reference/chatwoot/app/javascript/dashboard/api/specs/search.spec.js literal /api/v1/search explicit GET internal/handler/api/v1/search_handler_test.go::TestSearchHandler_GlobalSearch_UsesReferenceResultTypes; route dump Covered as frontend spec-only bare URL; runtime account-scoped global search preserves q and returns Chatwoot reference result types.
Help Center reference/chatwoot/app/javascript/dashboard/api/specs/search.spec.js literal /api/v1/search/articles explicit GET internal/handler/api/v1/search_handler_test.go::TestSearchHandler_SearchArticles_HydratesPortalAndCategoryPayload; route dump Covered as frontend spec-only bare URL; runtime account-scoped article search preserves filters and hydrates Chatwoot portal/category article payload.
CRM reference/chatwoot/app/javascript/dashboard/api/specs/search.spec.js literal /api/v1/search/contacts explicit GET internal/handler/api/v1/search_handler_test.go::TestSearchHandler_SearchContacts_Success; route dump Covered as frontend spec-only bare URL; runtime account-scoped contact search preserves q/page/since/until style params and returns Chatwoot { payload: { contacts } }.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/search.spec.js literal /api/v1/search/conversations explicit GET internal/handler/api/v1/search_handler_test.go::TestSearchHandler_SearchConversations_ChatwootPayloadShape; route dump Covered as frontend spec-only bare URL; runtime account-scoped conversation search returns Chatwoot conversation payload shape and ignores unsupported reference filters safely.
Conversation/Message reference/chatwoot/app/javascript/dashboard/api/specs/search.spec.js literal /api/v1/search/messages explicit GET internal/handler/api/v1/search_handler_test.go::TestSearchHandler_SearchMessages_HydratesChatwootMessagePayload; route dump Covered as frontend spec-only bare URL; runtime account-scoped message search preserves supported filters and hydrates Chatwoot message payload.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/specs/slaReports.spec.js literal /api/v1 explicit GET internal/handler/api/v1/sla_policy_handler_test.go::TestSlaPolicyHandler_ListAppliedSlas_ChatwootPayloadAndFilters; route dump Covered as frontend spec-only ApiClient version assertion; runtime applied-SLA report routes are account-scoped under /api/v1/accounts/:account_id/applied_slas.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/specs/slaReports.spec.js literal /api/v1/applied_slas explicit GET internal/handler/api/v1/sla_policy_handler_test.go::TestSlaPolicyHandler_ListAppliedSlas_ChatwootPayloadAndFilters; route dump Covered as frontend spec-only bare URL; runtime account-scoped applied-SLA list preserves frontend filters and returns Chatwoot { meta, payload } shape.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/specs/slaReports.spec.js literal /api/v1/applied_slas/download explicit GET internal/handler/api/v1/sla_policy_handler_test.go::TestSlaPolicyHandler_GetAppliedSlaDownload_Success; route dump Covered as frontend spec-only bare URL; runtime account-scoped applied-SLA download returns Chatwoot CSV headers/body.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/specs/slaReports.spec.js literal /api/v1/applied_slas/metrics explicit GET internal/handler/api/v1/sla_policy_handler_test.go::TestSlaPolicyHandler_GetAppliedSlaMetrics_ChatwootReportShape; route dump Covered as frontend spec-only bare URL; runtime account-scoped applied-SLA metrics returns Chatwoot report totals by SLA status.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/teams.spec.js literal /api/v1/teams/1/team_members explicit - internal/handler/api/v1/team_handler_test.go::TestTeamHandlerSuite/TestTeamMembers_ChatwootPayloadAndDiffUpdate; route dump Covered as frontend spec-only bare URL; runtime account-scoped team-members route supports GET/PATCH diff updates and returns Chatwoot agent serializer array.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/specs/tiktokClient.spec.js literal /api/v1/accounts/1/tiktok/authorization explicit - internal/handler/api/v1/tiktok_channel_handler_test.go::TestTikTokChannel_Create_ChatwootSetupPayloadAndConfig; route parity exact for TikTok authorization Covered for TikTok authorization/setup endpoint path and payload used by Woochat setup.
Reports/Audit reference/chatwoot/app/javascript/dashboard/api/summaryReports.js ApiClient summary_reports account-scoped GET internal/handler/api/v1/summary_report_handler_test.go::TestSummaryReportHandlerTestSuite/TestAgent_Success; route dump Covered as account-scoped runtime path; summary reports validate date range and return Chatwoot array payloads for Woochat summary report clients.
Inbox/Agents/Assignment reference/chatwoot/app/javascript/dashboard/api/teams.js ApiClient teams account-scoped GET, POST, PATCH internal/handler/api/v1/team_handler_test.go::TestTeamHandlerSuite/TestList_Success; internal/handler/api/v1/team_handler_test.go::TestTeamHandlerSuite/TestCreate_Success; internal/handler/api/v1/team_handler_test.go::TestTeamHandlerSuite/TestUpdate_PatchRawPayloadSuccess; route dump Covered as account-scoped runtime path; teams list/create/patch return raw Chatwoot team payloads including allow_auto_assign and is_member.
Other reference/chatwoot/app/javascript/dashboard/api/userNotificationSettings.js ApiClient notification_settings account-scoped PATCH internal/handler/api/v1/notification_setting_handler_test.go::TestNotificationSettingHandlerSuite/TestUpdate_ReturnsRawChatwootPayload; route dump Covered as account-scoped runtime path; notification settings PATCH returns raw Chatwoot preference payload without generic wrapper.
Other reference/chatwoot/app/javascript/dashboard/api/webhooks.js ApiClient webhooks account-scoped standard CRUD internal/handler/api/v1/webhook_subscription_handler_test.go::TestWebhookSubscriptionHandlerSuite/TestList_Success; internal/handler/api/v1/webhook_subscription_handler_test.go::TestWebhookSubscriptionHandlerSuite/TestCreate_Success_ChatwootPayload; internal/handler/api/v1/webhook_subscription_handler_test.go::TestWebhookSubscriptionHandlerSuite/TestUpdate_Success_ChatwootPayload; internal/handler/api/v1/webhook_subscription_handler_test.go::TestWebhookSubscriptionHandlerSuite/TestDelete_Success_ReturnsEmptyOK; route dump Covered as account-scoped runtime path; webhooks CRUD returns Chatwoot { payload: { webhook(s) } } shape and empty OK delete.
Other reference/chatwoot/app/javascript/dashboard/api/yearInReview.js ApiClient year_in_review account-scoped GET internal/handler/api/v1/year_in_review_handler_test.go::TestYearInReviewShowReturnsRawChatwootPayload; route dump Covered as account-scoped APIV2 runtime path; year-in-review returns raw Chatwoot { year, total_conversations, busiest_day, support_personality } payload.
CSAT/Survey reference/chatwoot/app/javascript/survey/api/endPoints.js literal /public/api/v1/csat_survey/${uuid} explicit - internal/handler/api/v1/csat_survey_handler_test.go::TestCsatSurveyHandlerTestSuite/TestPublicCsatShowAndUpdate_Success; internal/handler/api/v1/csat_survey_handler_test.go::TestCsatSurveyHandlerTestSuite/TestPublicCsatUpdate_ChatwootPutPersistsShowPayload; route dump Covered as public runtime path; CSAT survey show/update works by UUID and returns persisted Chatwoot public survey payload.
CSAT/Survey reference/chatwoot/app/javascript/survey/api/specs/endPoints.spec.js literal /public/api/v1/csat_survey/98c5d7f3-8873-4262-b101-d56425ff7ee1 explicit - internal/handler/api/v1/csat_survey_handler_test.go::TestCsatSurveyHandlerTestSuite/TestPublicCsatShowAndUpdate_Success; internal/handler/api/v1/csat_survey_handler_test.go::TestCsatSurveyHandlerTestSuite/TestPublicCsatUpdate_ChatwootPutPersistsShowPayload; route dump Covered as frontend spec-only fixed UUID literal; runtime public CSAT UUID route returns and updates Chatwoot-compatible survey response payload.
Widget reference/chatwoot/app/javascript/widget/api/contacts.js literal /api/v1/${endPoint}${window.location.search} explicit GET, POST, PATCH internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootConfigCwConversationReusesContactInbox; internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootMessageUpdate_SubmitsEmail; internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootDestroyContactCustomAttributes; route dump Covered for widget contact literal builder; runtime widget/contact, set_user, and contact custom-attribute actions use query/cookie auth and return Chatwoot widget contact payloads.
Widget reference/chatwoot/app/javascript/widget/api/conversation.js literal /api/v1/widget/conversations${window.location.search} explicit GET, POST internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootConversationQueryTokenReusesSession; internal/handler/widget/widget_handler_test.go::TestWidgetHandler_GetConversations_Success; route dump Covered for widget conversation GET/POST; runtime preserves website_token/cw_conversation session reuse and returns Chatwoot conversation payloads.
Widget reference/chatwoot/app/javascript/widget/api/conversation.js literal /api/v1/widget/conversations/destroy_custom_attributes${window.location.search} explicit GET, POST internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootConversationCustomAttributeResponses; route dump Covered for widget conversation custom-attribute delete; runtime accepts Chatwoot body and returns updated conversation payload.
Widget reference/chatwoot/app/javascript/widget/api/conversation.js literal /api/v1/widget/conversations/set_custom_attributes${window.location.search} explicit GET, POST internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootConversationCustomAttributeResponses; route dump Covered for widget conversation custom-attribute set; runtime accepts { custom_attributes } and returns empty OK like Chatwoot.
Widget reference/chatwoot/app/javascript/widget/api/conversation.js literal /api/v1/widget/conversations/toggle_status${window.location.search} explicit GET, POST internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootConversationHeadActionsReturnEmptyOK; internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootToggleStatusHonorsEndConversationFlag; route dump Covered for widget toggle-status; runtime returns empty OK when enabled and stable forbidden/not-found states when unavailable.
Widget reference/chatwoot/app/javascript/widget/api/conversation.js literal /api/v1/widget/conversations/toggle_typing${window.location.search} explicit GET, POST internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootConversationHeadActionsReturnEmptyOK; internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ToggleTyping_Success; route dump Covered for widget toggle-typing; runtime accepts { typing_status } and returns empty OK while publishing widget typing payload.
Widget reference/chatwoot/app/javascript/widget/api/conversation.js literal /api/v1/widget/conversations/transcript${window.location.search} explicit GET, POST internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootSetUserAndTranscript; internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootTranscriptStatusParity; route dump Covered for widget transcript; runtime returns Chatwoot accepted/empty status shapes based on contact email and conversation context.
Widget reference/chatwoot/app/javascript/widget/api/conversation.js literal /api/v1/widget/conversations/update_last_seen${window.location.search} explicit GET, POST internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootConversationHeadActionsReturnEmptyOK; route dump Covered for widget update-last-seen; runtime accepts contact last-seen body and returns empty OK.
Widget reference/chatwoot/app/javascript/widget/api/conversationLabels.js literal /api/v1/${endPoint}${window.location.search} explicit POST, DELETE internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootEventsAndLabels; route dump Covered for widget label builder; runtime supports POST widget/labels and DELETE widget/labels/:label using auth token or cw_conversation cookie.
Widget reference/chatwoot/app/javascript/widget/api/endPoints.js literal /api/v1/widget/campaigns explicit - internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootCampaigns_Success; route dump Covered for widget campaigns; runtime filters enabled campaigns by website token and returns raw Chatwoot campaign array.
Widget reference/chatwoot/app/javascript/widget/api/endPoints.js literal /api/v1/widget/conversations${search} explicit - internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootConversationQueryTokenReusesSession; route dump Covered for endpoint builder create-conversation path; runtime creates/reuses widget conversation from query params.
Widget reference/chatwoot/app/javascript/widget/api/endPoints.js literal /api/v1/widget/events explicit - internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootEventsAndLabels; route dump Covered for widget events; runtime accepts event body via auth token or cookie and returns no-content.
Widget reference/chatwoot/app/javascript/widget/api/endPoints.js literal /api/v1/widget/inbox_members explicit - internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootInboxMembers_Success; route dump Covered for widget inbox members; runtime returns { payload: [...] } with Chatwoot agent availability fields.
Widget reference/chatwoot/app/javascript/widget/api/endPoints.js literal /api/v1/widget/messages${search} explicit - internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootMessageAppliesAttrsAndLabelsToNewConversation; internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootMessagesIndexFiltersInternalMessages; route dump Covered for widget message create/list endpoints; runtime applies custom attributes/labels on first conversation and returns Chatwoot message list payloads.
Widget reference/chatwoot/app/javascript/widget/api/endPoints.js literal /api/v1/widget/messages${window.location.search} explicit - internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootMessages_AuthTokenAndNestedPayload; route dump Covered for widget messages with window.location.search; runtime accepts nested Chatwoot message body and auth token.
Widget reference/chatwoot/app/javascript/widget/api/endPoints.js literal /api/v1/widget/messages/${id}${window.location.search} explicit - internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootMessageUpdate_SubmitsEmail; route dump Covered for widget message update; runtime supports Chatwoot email-submit update path with auth token.
Widget reference/chatwoot/app/javascript/widget/api/endPoints.js literal /hc/${slug}/${locale}/articles.json explicit - internal/handler/api/v1/article_handler_test.go::TestArticleHandlerSuite/TestPublicList_WidgetPopularArticles; route dump Covered for widget help-center article JSON path; runtime public help-center route returns published locale article payloads.
Widget reference/chatwoot/app/javascript/widget/api/events.js literal /api/v1/widget/events${search} explicit POST internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootEventsAndLabels; route dump Covered for widget events search builder; runtime accepts website_token query or cookie session and returns no-content.
Widget reference/chatwoot/app/javascript/widget/api/integration.js literal /api/v1/widget/integrations/dyte/add_participant_to_meeting${search} explicit POST internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootDyteParticipant; route dump Covered for widget Dyte integration; runtime accepts message/participant body and returns provider auth token payload.
Widget reference/chatwoot/app/javascript/widget/api/specs/endPoints.spec.js literal /api/v1/widget/events explicit - internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootEventsAndLabels; route dump Covered as frontend spec fixed widget-events literal; runtime widget events route returns no-content.
Widget reference/chatwoot/app/javascript/widget/api/specs/endPoints.spec.js literal /api/v1/widget/messages explicit - internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootMessages_AuthTokenAndNestedPayload; route dump Covered as frontend spec fixed widget-messages literal; runtime accepts Chatwoot widget message body and returns message payload.
Widget reference/chatwoot/app/javascript/widget/api/specs/endPoints.spec.js literal /api/v1/widget/messages?param=1&locale=ar explicit - internal/handler/widget/widget_handler_test.go::TestWidgetHandler_ChatwootMessages_AuthTokenAndNestedPayload; route dump Covered as frontend spec fixed widget-messages query literal; runtime preserves query params while authenticating via widget token/auth token and returning message payload.

Required Follow-Up

  • Convert the highest-traffic rows into fixture contract tests: auth/profile, accounts/cache keys, inboxes, conversations/messages, contacts/companies, widget messages, CSAT, reports, and enterprise settings.
  • Attach live scripts/parity_frontend_smoke.sh --api-smoke and --browser-smoke evidence to the rows that are exercised by smoke flows.
  • Keep any new frontend API client file from reference/chatwoot mapped here before claiming direct-connect compatibility.