Open-source live-chat, email support, omni-channel desk. An alternative to Intercom, Zendesk, Salesforce Service Cloud etc. 🔥💬
1092 matches across 12 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/mailers/conversation_reply_mailer.rb | 65 | def init_conversation_attributes(conversation) |
| LOW | app/mailers/references_header_builder.rb | 42 | def get_references_from_replied_message(conversation, in_reply_to_message_id) |
| LOW | app/mailers/references_header_builder.rb | 77 | def extract_references_from_message(message) |
| LOW | …nistrator_notifications/account_notification_mailer.rb | 2 | def account_deletion_user_initiated(account, reason) |
| LOW | …nistrator_notifications/account_notification_mailer.rb | 14 | def account_deletion_for_inactivity(account, reason) |
| LOW | …ent_notifications/conversation_notifications_mailer.rb | 34 | def assigned_conversation_new_message(conversation, agent, message) |
| LOW | …ent_notifications/conversation_notifications_mailer.rb | 46 | def participating_conversation_new_message(conversation, agent, message) |
| LOW | app/builders/contact_inbox_with_contact_builder.rb | 79 | def find_contact_by_instagram_source_id(instagram_id) |
| LOW | app/builders/contact_inbox_with_contact_builder.rb | 93 | def find_contact_by_identifier(identifier) |
| LOW | app/builders/contact_inbox_with_contact_builder.rb | 105 | def find_contact_by_phone_number(phone_number) |
| LOW | app/builders/messages/message_builder.rb | 204 | def process_liquid_in_email_body(content) |
| LOW | app/builders/messages/messenger/message_builder.rb | 67 | def update_attachment_file_type(attachment) |
| LOW | app/builders/messages/messenger/message_builder.rb | 106 | def get_story_object_from_source_id(_source_id) |
| LOW | app/builders/messages/messenger/message_builder.rb | 127 | def update_facebook_reel_content(attachment) |
| LOW | app/builders/messages/facebook/message_builder.rb | 125 | def process_contact_params_result(result) |
| LOW | app/builders/messages/instagram/base_message_builder.rb | 118 | def create_story_reply_attachment(story_url) |
| LOW | app/builders/messages/instagram/base_message_builder.rb | 179 | def find_message_by_source_id(source_id) |
| LOW | app/builders/messages/instagram/base_message_builder.rb | 198 | def get_story_object_from_source_id(source_id) |
| LOW | app/builders/messages/instagram/message_builder.rb | 8 | def get_story_object_from_source_id(source_id) |
| LOW | …ilders/messages/instagram/messenger/message_builder.rb | 8 | def get_story_object_from_source_id(source_id) |
| LOW | app/builders/v2/reports/label_summary_builder.rb | 61 | def fetch_conversation_counts(conversation_filter) |
| LOW | app/models/inbox.rb | 212 | def dispatch_reauthorization_event(reauthorization_required) |
| LOW | app/models/attachment.rb | 201 | def validate_file_content_type(file_content_type) |
| LOW | app/models/message.rb | 444 | def validate_attachments_limit(_attachment) |
| LOW | app/models/conversation.rb | 217 | def dispatch_conversation_updated_event(previous_changes = nil) |
| LOW | app/models/automation_rule.rb | 98 | def validate_single_condition(condition) |
| LOW | app/models/application_record.rb | 34 | def check_and_validate_content_length(column) |
| LOW | app/models/application_record.rb | 46 | def normalize_empty_string_to_nil(attrs = []) |
| LOW | app/models/channel/telegram.rb | 44 | def get_telegram_profile_image(user_id) |
| LOW | app/models/channel/telegram.rb | 130 | def convert_markdown_to_telegram_html(text) |
| LOW | app/models/concerns/sort_handler.rb | 17 | def sort_on_priority_created_at(sort_direction = :desc) |
| LOW | …p/models/concerns/assignee_activity_message_handler.rb | 6 | def create_assignee_change_activity(user_name) |
| LOW | …p/models/concerns/assignee_activity_message_handler.rb | 15 | def generate_assignee_change_activity_content(user_name) |
| LOW | app/models/concerns/activity_message_handler.rb | 70 | def user_status_change_activity_content(user_name) |
| LOW | app/models/concerns/activity_message_handler.rb | 102 | def create_mute_change_activity(change_type) |
| LOW | app/models/concerns/sla_activity_message_handler.rb | 6 | def create_sla_change_activity(change_type, user_name) |
| LOW | app/models/concerns/reauthorizable.rb | 58 | def send_channel_reauthorization_email(disconnect_type) |
| LOW | app/models/concerns/reauthorizable.rb | 80 | def dispatch_inbox_reauthorization_event(reauthorization_required) |
| LOW | …p/models/concerns/priority_activity_message_handler.rb | 20 | def build_priority_change_content(user_name, old_priority = nil, new_priority = nil) |
| LOW | app/models/concerns/label_activity_message_handler.rb | 14 | def create_label_change_activity(change_type, user_name, labels = []) |
| LOW | app/models/concerns/sso_authenticatable.rb | 10 | def invalidate_sso_auth_token(token) |
| LOW | app/models/concerns/json_schema_validator.rb | 89 | def get_name_from_data_pointer(error) |
| LOW | app/models/concerns/team_activity_message_handler.rb | 6 | def create_team_change_activity(user_name) |
| LOW | app/models/concerns/cache_keys.rb | 39 | def update_cache_key_for_account(account_id, key) |
| LOW | app/mailboxes/mailbox_helper.rb | 54 | def process_regular_attachments(attachments) |
| LOW | app/mailboxes/mailbox_helper.rb | 66 | def process_inline_attachments(attachments) |
| LOW | app/mailboxes/mailbox_helper.rb | 78 | def embed_inline_image_source(mail_attachment) |
| LOW | app/mailboxes/mailbox_helper.rb | 86 | def embed_plain_text_email_with_inline_image(mail_attachment) |
| LOW | app/javascript/widget/components/Form/PhoneInput.vue | 93 | function scrollToFocusedOrActiveItem(item) { |
| LOW | app/javascript/shared/mixins/specs/inboxMixin.spec.js | 4 | function getComponentConfigForInbox(channelType, additionalConfig = {}) { |
| LOW | app/javascript/shared/mixins/specs/inboxMixin.spec.js | 19 | function getComponentConfigForChat(chat) { |
| LOW | …board/composables/useConversationRequiredAttributes.js | 13 | export function useConversationRequiredAttributes() { |
| LOW | …/javascript/dashboard/composables/useKeyboardEvents.js | 52 | async function wrapEventsInKeybindingsHandler(events) { |
| LOW | …oard/composables/chatlist/useChatListKeyboardEvents.js | 3 | export function useChatListKeyboardEvents(listRef) { |
| LOW | …components-next/sidebar/useSidebarKeyboardShortcuts.js | 4 | export function useSidebarKeyboardShortcuts(toggleShortcutModalFn) { |
| LOW | …avascript/dashboard/components-next/filter/provider.js | 50 | export function useConversationFilterContext() { |
| LOW | …pt/dashboard/components-next/filter/ContactsFilter.vue | 74 | function validateAndSubmit() { |
| LOW | …ashboard/components-next/filter/ConversationFilter.vue | 73 | function validateAndSubmit() { |
| LOW | app/javascript/dashboard/components/ChatList.vue | 377 | function fetchFilteredConversations(payload) { |
| LOW | app/javascript/dashboard/components/ChatList.vue | 390 | function fetchSavedFilteredConversations(payload) { |
| 396 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/mailers/references_header_builder.rb | 1 | # Builds RFC 5322 compliant References headers for email threading |
| LOW | app/builders/agent_builder.rb | 1 | # The AgentBuilder class is responsible for creating a new agent. |
| LOW | app/models/macro.rb | 1 | # == Schema Information |
| LOW | app/models/note.rb | 1 | # == Schema Information |
| LOW | app/models/custom_attribute_definition.rb | 1 | # == Schema Information |
| LOW | app/models/related_category.rb | 1 | # == Schema Information |
| LOW | app/models/account.rb | 1 | # == Schema Information |
| LOW | app/models/data_import.rb | 1 | # == Schema Information |
| LOW | app/models/article.rb | 1 | # == Schema Information |
| LOW | app/models/article.rb | 21 | # folder_id :integer |
| LOW | app/models/category.rb | 1 | # == Schema Information |
| LOW | app/models/email_template.rb | 1 | # == Schema Information |
| LOW | app/models/platform_app_permissible.rb | 1 | # == Schema Information |
| LOW | app/models/contact.rb | 1 | # rubocop:disable Layout/LineLength |
| LOW | app/models/contact.rb | 21 | # created_at :datetime not null |
| LOW | app/models/assignment_policy.rb | 1 | # == Schema Information |
| LOW | app/models/mention.rb | 1 | # == Schema Information |
| LOW | app/models/csat_survey_response.rb | 1 | # == Schema Information |
| LOW | app/models/inbox_assignment_policy.rb | 1 | # == Schema Information |
| LOW | app/models/canned_response.rb | 1 | # == Schema Information |
| LOW | app/models/label.rb | 1 | # == Schema Information |
| LOW | app/models/inbox.rb | 1 | # frozen_string_literal: true |
| LOW | app/models/inbox.rb | 21 | # out_of_office_message :string |
| LOW | app/models/agent_bot.rb | 1 | # == Schema Information |
| LOW | app/models/notification_subscription.rb | 1 | # == Schema Information |
| LOW | app/models/platform_banner.rb | 1 | # == Schema Information |
| LOW | app/models/campaign.rb | 1 | # == Schema Information |
| LOW | app/models/campaign.rb | 21 | # inbox_id :bigint not null |
| LOW | app/models/dashboard_app.rb | 1 | # == Schema Information |
| LOW | app/models/account_user.rb | 1 | # == Schema Information |
| LOW | app/models/attachment.rb | 1 | # == Schema Information |
| LOW | app/models/message.rb | 1 | # == Schema Information |
| LOW | app/models/message.rb | 21 | # inbox_id :integer not null |
| LOW | app/models/team.rb | 1 | # == Schema Information |
| LOW | app/models/reporting_events_rollup.rb | 1 | # == Schema Information |
| LOW | app/models/notification.rb | 1 | # == Schema Information |
| LOW | app/models/folder.rb | 1 | # == Schema Information |
| LOW | app/models/custom_filter.rb | 1 | # == Schema Information |
| LOW | app/models/conversation.rb | 1 | # == Schema Information |
| LOW | app/models/conversation.rb | 21 | # updated_at :datetime not null |
| LOW | app/models/conversation.rb | 41 | # index_conversations_on_contact_inbox_id (contact_inbox_id) |
| LOW | app/models/super_admin.rb | 1 | # == Schema Information |
| LOW | app/models/super_admin.rb | 21 | # otp_backup_codes :text |
| LOW | app/models/super_admin.rb | 41 | # index_users_on_otp_required_for_login (otp_required_for_login) |
| LOW | app/models/automation_rule.rb | 1 | # == Schema Information |
| LOW | app/models/portal.rb | 1 | # == Schema Information |
| LOW | app/models/notification_setting.rb | 1 | # == Schema Information |
| LOW | app/models/agent_bot_inbox.rb | 1 | # == Schema Information |
| LOW | app/models/installation_config.rb | 1 | # == Schema Information |
| LOW | app/models/contact_inbox.rb | 1 | # == Schema Information |
| LOW | app/models/working_hour.rb | 1 | # == Schema Information |
| LOW | app/models/platform_app.rb | 1 | # == Schema Information |
| LOW | app/models/webhook.rb | 1 | # == Schema Information |
| LOW | app/models/conversation_participant.rb | 1 | # == Schema Information |
| LOW | app/models/inbox_member.rb | 1 | # == Schema Information |
| LOW | app/models/team_member.rb | 1 | # == Schema Information |
| LOW | app/models/user.rb | 1 | # == Schema Information |
| LOW | app/models/user.rb | 21 | # otp_backup_codes :text |
| LOW | app/models/access_token.rb | 1 | # == Schema Information |
| LOW | app/models/reporting_event.rb | 1 | # == Schema Information |
| 211 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | app/mailers/references_header_builder.rb | 3 | # This module provides functionality to construct proper References headers |
| MEDIUM | app/models/concerns/json_schema_validator.rb | 1 | # This file defines a custom validator class `JsonSchemaValidator` for validating a JSON object against a schema. |
| MEDIUM | app/models/concerns/json_schema_validator.rb | 43 | # Create a JSONSchemer instance using the schema |
| MEDIUM | app/helpers/data_helper.rb | 2 | # This module contains helper methods for converting between different data types, |
| MEDIUM | …rprise/app/helpers/captain/chat_generation_recorder.rb | 10 | # Create a generation span with model and token info for Langfuse cost calculation. |
| MEDIUM | …vices/internal/accounts/internal_attributes_service.rb | 23 | # Create a new hash to avoid modifying the original |
| MEDIUM | config/markdown_embeds.yml | 3 | # This file defines patterns and templates for converting URLs into embedded content |
| MEDIUM | config/installation_config.yml | 1 | # This file contains all the installation wide configuration which controls various settings in Chatwoot |
| MEDIUM | config/initializers/feature_policy.rb | 1 | # Define an application-wide HTTP feature policy. For further |
| MEDIUM | config/initializers/wrap_parameters.rb | 3 | # This file contains settings for ActionController::ParamsWrapper which |
| MEDIUM | config/initializers/permissions_policy.rb | 1 | # Define an application-wide HTTP permissions policy. For further |
| MEDIUM | config/initializers/content_security_policy.rb | 3 | # Define an application-wide content security policy |
| MEDIUM | config/initializers/git_sha.rb | 1 | # Define a method to fetch the git commit hash |
| MEDIUM | …terprise/models/concerns/captain_tools_helpers_spec.rb | 4 | # Create a test class that includes the concern |
| MEDIUM | …nterprise/policies/csat_survey_response_policy_spec.rb | 11 | # Create a custom role with report_manage permission |
| MEDIUM | spec/enterprise/policies/article_policy_spec.rb | 13 | # Create a custom role with knowledge_base_manage permission |
| MEDIUM | spec/enterprise/policies/report_policy_spec.rb | 11 | # Create a custom role with report_manage permission |
| MEDIUM | spec/enterprise/policies/portal_policy_spec.rb | 11 | # Create a custom role with knowledge_base_manage permission |
| MEDIUM | spec/enterprise/policies/category_policy_spec.rb | 12 | # Create a custom role with knowledge_base_manage permission |
| MEDIUM | spec/enterprise/lib/captain/base_task_service_spec.rb | 9 | # Create a concrete test service class with enterprise module prepended |
| MEDIUM | spec/enterprise/lib/captain/prompt_renderer_spec.rb | 78 | # Create a controlled snippet to decouple from real snippet content |
| MEDIUM | …trollers/enterprise/api/v1/accounts_controller_spec.rb | 360 | # Create the installation config for cloud environment |
| MEDIUM | …terprise/api/v1/accounts/categories_controller_spec.rb | 12 | # Create a custom role with knowledge_base_manage permission |
| MEDIUM | …enterprise/api/v1/accounts/articles_controller_spec.rb | 13 | # Create a custom role with knowledge_base_manage permission |
| MEDIUM | …/enterprise/api/v1/accounts/portals_controller_spec.rb | 11 | # Create a custom role with knowledge_base_manage permission |
| MEDIUM | …/v1/accounts/contacts/conversations_controller_spec.rb | 25 | # Create a conversation assigned to this agent |
| MEDIUM | …/v1/accounts/contacts/conversations_controller_spec.rb | 65 | # Create the conversations |
| MEDIUM | …/enterprise/api/v2/accounts/reports_controller_spec.rb | 9 | # Create a custom role with report_manage permission |
| MEDIUM | …llers/api/v1/accounts/conversations_controller_spec.rb | 140 | # Create an event for a different conversation (should not be included) |
| MEDIUM | …captain/tools/copilot/get_conversation_service_spec.rb | 115 | # Create a regular message |
| MEDIUM | …captain/tools/copilot/get_conversation_service_spec.rb | 122 | # Create a private message |
| MEDIUM | …rprise/conversations/permission_filter_service_spec.rb | 53 | # Create a new isolated test environment |
| MEDIUM | …rprise/conversations/permission_filter_service_spec.rb | 90 | # Create a new isolated test environment |
| MEDIUM | …rprise/conversations/permission_filter_service_spec.rb | 99 | # Create a custom role with only the conversation_participating_manage permission |
| MEDIUM | …rprise/conversations/permission_filter_service_spec.rb | 128 | # Create a new isolated test environment |
| MEDIUM | …rprise/conversations/permission_filter_service_spec.rb | 137 | # Create a custom role with only the conversation_unassigned_manage permission |
| MEDIUM | …rprise/conversations/permission_filter_service_spec.rb | 169 | # Create a new isolated test environment |
| MEDIUM | …rprise/conversations/permission_filter_service_spec.rb | 178 | # Create a custom role with both participating and unassigned permissions |
| MEDIUM | …enterprise/billing/handle_stripe_event_service_spec.rb | 121 | # Create a double for the service |
| MEDIUM | …ec/builders/contact_inbox_with_contact_builder_spec.rb | 102 | # Create a Facebook page inbox with a contact using the same source_id |
| MEDIUM | …ec/builders/contact_inbox_with_contact_builder_spec.rb | 107 | # Create an Instagram inbox |
| MEDIUM | spec/models/contact_spec.rb | 151 | # Create a lead contact with only name |
| MEDIUM | spec/models/contact_spec.rb | 155 | # Create a customer contact |
| MEDIUM | spec/models/contact_spec.rb | 159 | # Create a visitor contact |
| MEDIUM | spec/models/concerns/json_schema_validator_spec.rb | 24 | # Create a simple test model for validation |
| MEDIUM | spec/mailboxes/application_mailbox_spec.rb | 76 | # Create a BCC-only email scenario |
| MEDIUM | spec/support/csv_spec_helpers.rb | 5 | # Create a temporary file |
| MEDIUM | spec/lib/captain/base_task_service_spec.rb | 8 | # Create a concrete test service class since BaseTaskService is abstract |
| MEDIUM | spec/jobs/internal/process_stale_contacts_job_spec.rb | 17 | # Create an account and set its ID to match today's pattern |
| MEDIUM | …llers/api/v1/accounts/conversations_controller_spec.rb | 837 | # Create a new message after agent_last_seen_at (unread message) |
| MEDIUM | …controllers/api/v2/accounts/reports_controller_spec.rb | 154 | # Create a resolution event right at timezone boundary |
| MEDIUM | spec/controllers/instagram/callbacks_controller_spec.rb | 57 | # Create an existing channel |
| MEDIUM | spec/listeners/automation_rule_listener_old_spec.rb | 1 | # This file is deprecated, please don't add any additional specs or modifications in this |
| MEDIUM | spec/listeners/reporting_event_listener_spec.rb | 371 | # Create a resolved event first |
| MEDIUM | spec/listeners/automation_rule_listener_labels_spec.rb | 45 | automation_rule # Create the automation rule |
| MEDIUM | spec/listeners/automation_rule_listener_labels_spec.rb | 67 | automation_rule # Create the automation rule |
| MEDIUM | spec/listeners/automation_rule_listener_labels_spec.rb | 107 | automation_rule # Create the automation rule |
| MEDIUM | spec/listeners/automation_rule_listener_labels_spec.rb | 125 | automation_rule # Create the automation rule |
| MEDIUM | spec/listeners/automation_rule_listener_labels_spec.rb | 147 | automation_rule # Create the automation rule |
| MEDIUM | spec/listeners/automation_rule_listener_labels_spec.rb | 188 | automation_rule # Create the automation rule |
| 22 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …avascript/dashboard/composables/spec/useMacros.spec.js | 91 | available_name: 'John Doe', |
| LOW | …avascript/dashboard/composables/spec/useMacros.spec.js | 92 | name: 'John Doe', |
| LOW | …script/dashboard/composables/commands/spec/fixtures.js | 9 | available_name: 'John Doe', |
| LOW | …script/dashboard/composables/commands/spec/fixtures.js | 10 | name: 'John Doe', |
| LOW | …script/dashboard/composables/commands/spec/fixtures.js | 39 | available_name: 'John Doe', |
| LOW | …script/dashboard/composables/commands/spec/fixtures.js | 40 | name: 'John Doe', |
| LOW | …script/dashboard/composables/commands/spec/fixtures.js | 78 | name: 'John Doe', |
| LOW | …script/dashboard/composables/commands/spec/fixtures.js | 79 | available_name: 'John Doe', |
| LOW | …components-next/Contacts/ContactsForm/ContactsForm.vue | 189 | // Example: firstName="John", lastName="Doe" → name="John Doe" |
| LOW | …omponents-next/Contacts/ContactsForm/story/fixtures.js | 3 | name: 'John Doe', |
| LOW | …omponents-next/Contacts/ContactsCard/story/fixtures.js | 9 | name: 'John Doe', |
| LOW | …mponents-next/message/stories/MessageBubbles.story.vue | 23 | name: 'John Doe', |
| LOW | …onents-next/message/stories/InstagramBubbles.story.vue | 23 | name: 'John Doe', |
| LOW | …components-next/message/stories/MediaBubbles.story.vue | 23 | name: 'John Doe', |
| LOW | …ents-next/NewConversation/components/story/fixtures.js | 166 | name: 'John Doe', |
| LOW | …sation/helpers/specs/composeConversationHelper.spec.js | 11 | name: 'John Doe', |
| LOW | …sation/helpers/specs/composeConversationHelper.spec.js | 49 | ).toBe('John Doe'); |
| LOW | …sation/helpers/specs/composeConversationHelper.spec.js | 350 | name: 'John Doe', |
| LOW | …sation/helpers/specs/composeConversationHelper.spec.js | 366 | name: 'John Doe', |
| LOW | …sation/helpers/specs/composeConversationHelper.spec.js | 429 | name: 'John Doe', |
| LOW | …sation/helpers/specs/composeConversationHelper.spec.js | 436 | name: 'Jane Doe', |
| LOW | …sation/helpers/specs/composeConversationHelper.spec.js | 460 | name: 'John Doe', |
| LOW | …sation/helpers/specs/composeConversationHelper.spec.js | 496 | name: 'John Doe', |
| LOW | …sation/helpers/specs/composeConversationHelper.spec.js | 520 | name: 'John Doe', |
| LOW | …-next/template-preview/templates/whatsapp-templates.js | 367 | body_text: [['John', '123 Main St', 'support@telco.com']], |
| LOW | …/AssignmentPolicy/components/story/DataTable.story.vue | 28 | name: 'John Doe', |
| LOW | …pt/dashboard/components-next/table/BaseTable.story.vue | 35 | name: 'John Doe', |
| LOW | …ript/dashboard/components-next/avatar/Avatar.story.vue | 108 | <Avatar name="John Doe" :size="48" /> |
| LOW | …oard/modules/search/helpers/specs/searchHelper.spec.js | 342 | name: 'John Doe', |
| LOW | …oard/modules/search/helpers/specs/searchHelper.spec.js | 366 | const mockContactData = { id: 456, name: 'Jane Doe' }; |
| LOW | …vascript/dashboard/helper/specs/templateHelper.spec.js | 44 | 2: '123 Main St', |
| LOW | app/javascript/dashboard/helper/specs/macrosFixtures.js | 81 | available_name: 'John Doe', |
| LOW | app/javascript/dashboard/helper/specs/macrosFixtures.js | 82 | name: 'John Doe', |
| LOW | …javascript/dashboard/helper/specs/editorHelper.spec.js | 746 | name: 'John Doe', |
| LOW | …javascript/dashboard/helper/specs/editorHelper.spec.js | 759 | userFullName: 'John Doe', |
| LOW | …javascript/dashboard/helper/specs/editorHelper.spec.js | 768 | userFullName: 'John Doe', |
| LOW | …ipt/dashboard/helper/specs/editorContentHelper.spec.js | 35 | const content = { id: 1, name: 'John Doe' }; |
| LOW | …script/dashboard/helper/specs/automationHelper.spec.js | 98 | { id: 123, title: 'Fayaz', email: 'test@test.com' }, |
| LOW | …javascript/dashboard/helper/specs/macrosHelper.spec.js | 63 | const resolvedAgents = 'John Doe'; |
| LOW | …cript/dashboard/helper/specs/quotedEmailHelper.spec.js | 60 | const lastEmail = { sender: { name: 'John Doe' } }; |
| LOW | …cript/dashboard/helper/specs/quotedEmailHelper.spec.js | 62 | expect(result).toBe('John Doe'); |
| LOW | …cript/dashboard/helper/specs/quotedEmailHelper.spec.js | 80 | expect(result).toBe('John Doe'); |
| LOW | …cript/dashboard/helper/specs/quotedEmailHelper.spec.js | 193 | sender: { name: 'John Doe', email: 'john@example.com' }, |
| LOW | …cript/dashboard/helper/specs/quotedEmailHelper.spec.js | 199 | expect(result).toContain('John Doe'); |
| LOW | …cript/dashboard/helper/specs/quotedEmailHelper.spec.js | 272 | const contact = { name: 'John Doe', email: 'john@example.com' }; |
| LOW | …cript/dashboard/helper/specs/quotedEmailHelper.spec.js | 276 | expect(result).not.toContain('John Doe'); |
| LOW | …dashboard/store/modules/specs/contactNotes/fixtures.js | 6 | name: 'John Doe', |
| LOW | …ules/conversations/helpers/specs/filterHelpers.spec.js | 162 | values: { id: 1, name: 'John Doe' }, |
| LOW | …ules/conversations/helpers/specs/filterHelpers.spec.js | 201 | values: { id: 1, name: 'John Doe' }, |
| LOW | …ules/conversations/helpers/specs/filterHelpers.spec.js | 214 | values: { id: 1, name: 'John Doe' }, |
| LOW | app/javascript/v3/helpers/specs/CommonHelper.spec.js | 5 | expect(userInitial('John Doe')).toEqual('JD'); |
| LOW | app/javascript/v3/helpers/specs/AuthHelper.spec.js | 61 | fullName: 'John Doe', |
| LOW | …/services/whatsapp/providers/whatsapp_cloud_service.rb | 162 | # body: { '1': 'John', '2': '123 Main St' }, |
| LOW | swagger/swagger.json | 11590 | "example": "John Doe" |
| LOW | swagger/tag_groups/other_swagger.json | 2777 | "example": "John Doe" |
| LOW | swagger/tag_groups/application_swagger.json | 10097 | "example": "John Doe" |
| LOW | swagger/tag_groups/platform_swagger.json | 3538 | "example": "John Doe" |
| LOW | swagger/tag_groups/client_swagger.json | 3362 | "example": "John Doe" |
| LOW | swagger/definitions/request/agent/create_payload.yml | 10 | example: 'John Doe' |
| LOW | …trollers/enterprise/api/v2/accounts_controller_spec.rb | 9 | name: 'John Doe', |
| 114 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …script/dashboard/helper/specs/snoozeDateParser.spec.js | 121 | // ─── Regression Test Matrix ─────────────────────────────────────────────────── |
| MEDIUM | …script/dashboard/helper/specs/snoozeDateParser.spec.js | 544 | // ─── parseDateFromText direct tests ────────────────────────────────────────── |
| MEDIUM | …script/dashboard/helper/specs/snoozeDateParser.spec.js | 1512 | // ─── Multilingual / Localized Input Regressions ───────────────────────────── |
| MEDIUM | …ascript/dashboard/helper/snoozeDateParser/tokenMaps.js | 20 | // ─── Token Maps ────────────────────────────────────────────────────────────── |
| MEDIUM | …ascript/dashboard/helper/snoozeDateParser/tokenMaps.js | 199 | // ─── Unicode / Normalization ──────────────────────────────────────────────── |
| MEDIUM | …ascript/dashboard/helper/snoozeDateParser/tokenMaps.js | 289 | // ─── Utility Functions ────────────────────────────────────────────────────── |
| MEDIUM | …ript/dashboard/helper/snoozeDateParser/localization.js | 22 | // ─── English Reference Data ───────────────────────────────────────────────── |
| MEDIUM | …ript/dashboard/helper/snoozeDateParser/localization.js | 156 | // ─── Regex for token replacement ──────────────────────────────────────────── |
| MEDIUM | …ript/dashboard/helper/snoozeDateParser/localization.js | 172 | // ─── Translation Cache ────────────────────────────────────────────────────── |
| MEDIUM | …ript/dashboard/helper/snoozeDateParser/localization.js | 275 | // ─── Token Replacement ────────────────────────────────────────────────────── |
| MEDIUM | …ript/dashboard/helper/snoozeDateParser/localization.js | 345 | // ─── Main Suggestion Generator ────────────────────────────────────────────── |
| MEDIUM | …javascript/dashboard/helper/snoozeDateParser/parser.js | 48 | // ─── Regex Fragments (derived from maps) ──────────────────────────────────── |
| MEDIUM | …javascript/dashboard/helper/snoozeDateParser/parser.js | 81 | // ─── Pre-compiled Regexes ─────────────────────────────────────────────────── |
| MEDIUM | …javascript/dashboard/helper/snoozeDateParser/parser.js | 198 | // ─── Pattern Matchers ─────────────────────────────────────────────────────── |
| MEDIUM | …javascript/dashboard/helper/snoozeDateParser/parser.js | 774 | // ─── Main Parser ──────────────────────────────────────────────────────────── |
| MEDIUM | config/routes.rb | 44 | # ---------------------------------- |
| MEDIUM | config/routes.rb | 410 | # ---------------------------------- |
| MEDIUM | config/routes.rb | 536 | # ---------------------------------------------------------------------- |
| MEDIUM | config/routes.rb | 562 | # ---------------------------------------------------------------------- |
| MEDIUM | config/routes.rb | 600 | # ---------------------------------------------------------------------- |
| MEDIUM | config/routes.rb | 608 | # ---------------------------------------------------------------------- |
| MEDIUM | config/routes.rb | 652 | # ---------------------------------------------------------------------- |
| MEDIUM | config/routes.rb | 659 | # ---------------------------------------------------------------------- |
| MEDIUM | config/routes.rb | 710 | # --------------------------------------------------------------------- |
| MEDIUM | config/routes.rb | 715 | # ---------------------------------------------------------------------- |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/models/message.rb | 374 | # Check if this is a response from AgentBot or Captain::Assistant |
| LOW | app/models/notification.rb | 170 | # Check if the user has subscribed to the specified type of notification |
| LOW | app/mailboxes/mailbox_inline_attachment_helper.rb | 13 | # Check if attachment is explicitly marked as inline |
| LOW | app/mailboxes/mailbox_inline_attachment_helper.rb | 22 | # Check if CID is referenced in HTML content |
| LOW | …lers/public/api/v1/inboxes/conversations_controller.rb | 16 | # Check if the conversation is already resolved to prevent redundant operations |
| LOW | app/controllers/instagram/callbacks_controller.rb | 6 | # Check if Instagram redirected with an error (user canceled authorization) |
| LOW | …rsation_finder_strategies/new_conversation_strategy.rb | 27 | # Check if conversation already exists by in_reply_to |
| LOW | app/services/instagram/refresh_oauth_token_service.rb | 27 | # Check if token is still valid |
| LOW | …vices/whatsapp/populate_template_parameters_service.rb | 122 | # Check if text contains WhatsApp rich formatting markers |
| LOW | app/services/whatsapp/incoming_message_base_service.rb | 170 | # Set status to :delivered for echo messages to prevent SendReplyJob from trying to send them |
| LOW | app/services/whatsapp/webhook_setup_service.rb | 44 | # Check if we have a stored PIN for this phone number |
| LOW | app/services/whatsapp/webhook_setup_service.rb | 96 | # Check if phone is in pending provisioning state based on health data |
| LOW | app/services/whatsapp/webhook_setup_service.rb | 111 | # Check if phone number is in "not provisioned" state based on health indicators |
| LOW | …ervices/enterprise/auto_assignment/capacity_service.rb | 11 | # Check if there's a specific limit for this inbox |
| LOW | enterprise/lib/captain/tools/http_tool.rb | 45 | # Check if resolved IP is private |
| LOW | config/application.rb | 104 | # Check if proper encryption keys are configured |
| LOW | config/environments/production.rb | 94 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. |
| LOW | config/environments/production.rb | 97 | # Set this to appropriate ingress service for which the options are : |
| LOW | config/initializers/mailer.rb | 43 | # Set this to appropriate ingress service for which the options are : |
| LOW | spec/enterprise/models/sla_event_spec.rb | 69 | # Check if notification is created for the assignee |
| LOW | spec/enterprise/models/sla_event_spec.rb | 71 | # Check if notification is created for the account admin |
| LOW | spec/enterprise/models/sla_event_spec.rb | 73 | # Check if notification is created for participant |
| LOW | …enterprise/devise_overrides/session_controller_spec.rb | 54 | # Check if the sign_in event is created |
| LOW | spec/builders/v2/report_builder_spec.rb | 280 | metric: nil, # Set metric to nil to test this case |
| LOW | deployment/setup_20.04.sh | 425 | # Check if this is a conversion from existing deployment |
| LOW | deployment/setup_20.04.sh | 864 | # Check if Redis is installed |
| LOW | deployment/setup_20.04.sh | 990 | # Check if CW_VERSION is 4.0 or above |
| LOW | deployment/setup_20.04.sh | 1102 | # Check if Chatwoot is installed |
| LOW | deployment/setup_20.04.sh | 1196 | # Check if there is newer version of cwctl and upgrade if found |
| LOW | deployment/setup_20.04.sh | 1211 | #Check if pip is not installed, and install it if not |
| LOW | deployment/setup_20.04.sh | 1217 | # Check if packaging library is installed, and install it if not |
| LOW | rubocop/one_class_per_file.rb | 54 | # Check if we're inside a Rack::Attack class |
| LOW | rubocop/one_class_per_file.rb | 61 | # Check if the class inherits from StandardError or ends with 'Error' |
| LOW | rubocop/one_class_per_file.rb | 69 | # Check if any parent node is a module containing 'CustomExceptions' |
| LOW | rubocop/one_class_per_file.rb | 83 | # Check if class name ends with any of these patterns |
| LOW | .github/workflows/logging_percentage_check.yml | 50 | # Check if the percentage is less than 5% |
| LOW | .github/workflows/run_foss_spec.yml | 122 | # Assign spec to this node if: index % total == node_index |
| LOW | lib/redis/redis_keys.rb | 56 | # Check if a message create with same source-id is in progress? |
| LOW | lib/test_data/database_optimizer.rb | 21 | # Set tables to UNLOGGED mode for better write performance |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | …/javascript/dashboard/i18n/locale/sl/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/ur/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/sq/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/sv/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/am/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/no/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …vascript/dashboard/i18n/locale/ur_IN/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/tl/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/ml/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/hr/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/nl/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/bg/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/hi/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/ka/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/fi/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/en/conversation.json | 364 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …/javascript/dashboard/i18n/locale/ta/conversation.json | 343 | "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enq |
| MEDIUM | …ise/app/services/captain/llm/system_prompts_service.rb | 167 | - Do not try to end the conversation explicitly (e.g., avoid phrases like "Talk soon!" or "Let me know if you ne |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | app/builders/messages/instagram/base_message_builder.rb | 98 | # Therefore, we need to check if the message already exists before creating it. |
| LOW | …avascript/shared/mixins/keyboardEventListenerMixins.js | 30 | // so we need to check if the root element has a dataset property to ensure it is a valid element |
| LOW | app/javascript/dashboard/composables/useImageZoom.js | 68 | // Step 1: Calculate offset from center |
| LOW | app/javascript/dashboard/composables/useImageZoom.js | 71 | // Step 2: Apply rotation transformation |
| LOW | app/javascript/dashboard/composables/useImageZoom.js | 78 | // Step 3: Convert to percentage coordinates |
| LOW | …ipt/dashboard/components/widgets/WootWriter/Editor.vue | 401 | // these drafts can also have a signature, so we need to check if the body is empty |
| LOW | …d/store/modules/conversations/helpers/filterHelpers.js | 292 | // Step 1: Group consecutive AND conditions into logical units |
| LOW | …d/store/modules/conversations/helpers/filterHelpers.js | 319 | // Step 2: Add the final AND group that wasn't followed by an OR |
| LOW | …d/store/modules/conversations/helpers/filterHelpers.js | 328 | // Step 3: Combine all AND groups with OR operators |
| LOW | app/services/whatsapp/facebook_api_client.rb | 66 | # Step 1: Subscribe app to WABA first (required before override) |
| LOW | app/services/whatsapp/facebook_api_client.rb | 71 | # Step 2: Override callback URL for this specific WABA |
| LOW | app/services/twilio/csat_template_service.rb | 20 | # Step 1: Create template |
| LOW | app/services/twilio/csat_template_service.rb | 25 | # Step 2: Submit for WhatsApp approval using the approval_create URL |
| LOW | spec/services/whatsapp/facebook_api_client_spec.rb | 164 | # Step 1: Subscribe app to WABA (no body) |
| LOW | spec/services/whatsapp/facebook_api_client_spec.rb | 175 | # Step 2: Override callback URL (with body) |
| LOW | lib/integrations/slack/channel_builder.rb | 33 | # Step 1: Fetch all private channels in one call (expect very few) |
| LOW | lib/integrations/slack/channel_builder.rb | 37 | # Step 2: Fetch public channels with pagination |
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | …dashboard/components/widgets/WootWriter/FullEditor.vue | 309 | const node = editorView.state.schema.nodes.image.create({ |
| CRITICAL | spec/services/twilio/incoming_message_service_spec.rb | 260 | expect(conversation.reload.messages.last.attachments.map(&:file_type)).to contain_exactly('image', 'image') |
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | app/javascript/shared/components/ResizableTextArea.vue | 78 | // A surprise cursor jump? Definitely not user-friendly. |
| MEDIUM | …script/dashboard/composables/useWhatsappCallSession.js | 368 | // to the override means hangup is robust to a wiped local session. |
| LOW | app/services/crm/leadsquared/processor_service.rb | 65 | # So we just use the update API if we already have a lead ID |
| MEDIUM | app/services/email_templates/db_resolver_service.rb | 33 | # _details contain local info which we can leverage in future |
| LOW | enterprise/app/models/applied_sla.rb | 65 | # right now we simply use `CONVERSATION_UPDATED` event to notify the frontend |
| LOW | enterprise/app/models/enterprise/concerns/contact.rb | 18 | # 3. Email was just set/changed |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | lib/seeders/reports/report_data_seeder.rb | 10 | # Usage: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | .github/scripts/ghsa_linear_sync.py | 4 |