Skip to content

Conversation

@jakehwll
Copy link
Contributor

@jakehwll jakehwll commented Jan 12, 2026

Pull Request Description

This pull-request implements all the types missing from the current implementation of accountsettings.js. We're looking to add the returned types values from the backend when calling GET /account/settings.json and PUT /account/settings.json.

It should be noted the following types are undocumented and therefore aren't documented.

// Note that a commented line means its not present in the documentation but exists in the real backend API.
{
  "apps": {
    // "create_public": false
  },
  "tickets": {
    // status_hold: false,
    // rich_text_comments: true,
    // default_to_draft_mode: false,
    // has_color_text: true,
    // assign_tickets_upon_solve: true,
    // allow_group_reset: true,
    // messaging_transcript_public: true,
    // app_shortcuts_context_panel_enabled: true,
    // auto_translation_enabled: false,
    // accepted_new_collaboration_tos: false,
    // follower_and_email_cc_collaborations: true,
    // auto_updated_ccs_followers_rules: false,
    // agent_can_change_requester: true,
    // comment_email_ccs_allowed: true,
    // ticket_followers_allowed: true,
    // ticket_auto_tagging: false,
    // end_user_attachments: true,
    // copy_original_assignee_and_group_to_followup: false,
    // ccs_requester_excluded_public_comments: false,
    // bcc_archive_address: null,
    // suspended_ticket_notification: {
    //   frequency: 0,
    //   email_list: "",
    // },
    // light_agent_email_ccs_allowed: false,
    // agent_email_ccs_become_followers: true,
    // using_skill_based_routing: false,
    // custom_statuses_enabled: true,
    // modify_closed_tickets_customer_setting: false,
    // help_center_enabled: false,
    // display_fcp_setting: false,
    // ocb_messaging_enabled: true,
    // native_messaging_enabled: true,
    // bcc_archiving_available: false,
    // bcc_archiving_enabled: false,
    // ticket_tags_via_widget_enabled: false,
    // trial: true,
    // part_of_new_collaboration_eap_and_accepted_tos: false,
    // accepted_tos_but_new_collaboration_disabled: false,
    // third_party_end_user_public_comments_setting: false,
    // cc_blacklist: "",
    // collaborators_settable_in_help_center: false,
    // ticket_tags_via_widget: "0",
    // ocb_enabled: true,
    // reengagement: false,
    // third_party_end_user_public_comments: false,
    // lockdown_enabled: false,
    // email_comments_public: true,
    // render_custom_uri_hyperlinks: "",
    // ticket_id_sequence: 2,
    // follower_subject_template: "{{ticket.title}}",
    // follower_email_template:
    //   "You are a follower on this request ({{ticket.id}}). {{ticket.follower_reply_type_message}}\n\n{{ticket.latest_comment_html}}",
    // ticket_email_ccs_suspension_threshold: 48,
    // messaging_enabled: true,
    // ccs_followers_rules_update_required: true,
    // ccs_followers_no_rollback: true,
    // sunco_private_attachments_enabled: true,
    // only_allowed_attachment_file_types: "recommended",
    // only_allowed_attachment_file_types_agreement: "unset",
    // custom_allowed_attachment_file_types_list: null,
    // attachment_public_expiration: true,
    // attachment_public_duration: 24,
  },
  "agents": {
    // focus_mode: false,
    // aw_auto_activation_timestamp: null,
    // aw_auto_activation_status: 0,
    // aw_prevent_opt_out: true,
    // agent_as_a_requester: "private-groups",
    // idle_timeout_enabled: false,
    // agent_home: true,
    // split_view_enabled: false,
    // split_view_tos_accepted: false,
    // dark_mode_agent_workspace: true,
    // dark_mode_terms_and_conditions_accepted: false,
    // example_eap_tos_accepted: false,
    // example_eap_enabled: false,
    // explore_zra_monitoring_assistant_eap_tos_accepted: false,
    // explore_zra_monitoring_assistant_eap_enabled: false,
    // it_asset_management_eap_tos_accepted: false,
    // it_asset_management_eap_enabled: false,
    // zra_wfm_adherence_eap_tos_accepted: false,
    // zra_wfm_adherence_eap_enabled: false,
  },
  "chat": {
    // integrated: false,
    // available: true,
    // maximum_request_count: 1,
    // ctm_auto_activation_timestamp: null,
    // ctm_auto_activation_status: 0,
    // ctm_prevent_opt_out: false,
    // ctm_segment: 0,
    // ctm_operating_hours_migration_status: 0,
    // ctm_chat_triggers_migration_status: 0,
    // ctm_chat_triggers_llm_migration_status: 0,
    // ctm_default_setup_csat_status: 0,
    // ctm_pre_chat_form_migration_status: 0,
    // ctm_offline_form_migration_status: 0,
    // ctm_visitor_ip_banned_migration_status: 0,
    // ctm_goals_migration_status: 0,
    // ctm_chat_routing_migration_status: 0,
    // ctm_device_metadata_migration_status: 0,
    // ctm_reporting_migration_status: 0,
    // ctm_chat_api_migration_status: 0,
    // ctm_mobile_sdk_migration_status: 0,
    // ctm_default_setup_end_session_status: 0,
    // ctm_default_setup_auto_release_status: 0,
    // ctm_default_setup_wait_time_status: 0,
  },
  "voice": {
    // voice_ai_enabled: false,
    // voice_ai_display_transcript: false,
    // voice_zendesk_qa_enabled: false,
    // knowledge_suggestions_enabled: false,
    // knowledge_suggestions_group_ids: [],
    // voice_transcriptions_pii_redaction: false,
    // voice_transcriptions_pci_redaction: false,
    // voice_transcriptions_boosted_keywords_enabled: false,
    // voice_transcriptions_boosted_keywords: "",
  },
  "user": {
    // multiple_organizations: false,
  },
  // screencast: {
  //   enabled_for_tickets: false,
  //   host: null,
  //   tickets_recorder_id: null,
  // },
  "lotus": {
    // reporting: true,
    // pod_id: 15,
  },
  "statistics": {
    // rule_usage: true,
  },
  "ticket_form": {
    // raw_ticket_forms_instructions: "{{zd.default_ticket_forms_instructions}}",
  },
  "brands": {
    // new_agent_brand_association_behavior: "all_brands",
    // end_user_upgrade_brand_association_behavior: "previous_brands",
  },
  "api": {
    // api_password_access: "false",
    // api_password_access_end_users: false,
  },
  "rule": {
    // using_skill_based_routing: false,
  },
  "knowledge": {
    // default_search_filters_sections: "",
  },
  "routing": {
    // skills_enabled: false,
    // skills_timeout_enabled: false,
    // skills_timeout_support: 3600,
    // skills_timeout_messaging: 30,
    // skills_timeout_talk: 30,
    // reassignment_reopened_tickets_enabled: false,
    // reassignment_reopened_tickets_support_enabled: false,
    // reassignment_reopened_tickets_messaging_enabled: false,
    // reassignment_reopened_tickets_support_statuses: [],
    // reassignment_reopened_tickets_messaging_statuses: [],
    // reassignment_agent_status_change_enabled: false,
    // reassignment_agent_status_change_support_enabled: false,
    // reassignment_agent_status_change_messaging_enabled: false,
    // reassignment_agent_status_change_support_agent_statuses: [],
    // reassignment_agent_status_change_support_ticket_priorities: [],
    // reassignment_agent_status_change_messaging_agent_statuses: [],
    // reassignment_agent_status_change_messaging_ticket_priorities: [],
    // reassignment_through_queues_enabled: false,
    // messaging_activity_routing_enabled: false,
    // auto_activation: 0,
    // auto_open_email_enabled: false,
    // auto_accept_messaging_enabled: false,
    // focus_mode_enabled: false,
    // assignment_method: "highest_spare_capacity",
    // ticket_sorting_prioritize_sla: false,
    // transform_to_email_enabled: false,
  },
  // deletion: {
  //   user_auto_delete_soft_deleted_retention: 30,
  //   user_auto_delete_max_deletions_per_hour: 1000,
  //   user_auto_delete_batch_size: 1000,
  //   user_auto_delete_account_prioritisation: 1,
  // },
  // messaging: {
  //   messaging_end_session: true,
  // },
  // it_asset_management: {
  //   enabled: false,
  // },
  // ai: {
  //   macro_content_suggestions_title_gen_enabled: false,
  // },
}

Furthermore, I noticed that the following key doesn't exist when queried against the API. For this reason, I added a {number=} maximum_requests/maximum_requests?: number | undefined type so that this won't throw errors in code.

Its a bit of a foot-gun though, I'm for changing it.

{
    "chat": {
        // maximum_requests: 1,
    }
}

Related Issue(s)

  • This is a new feature and does not have an associated issue.

Additional Information

  • This change improves the code (e.g., refactoring, etc.)

Test Cases

Include any test cases or steps you took to test your changes. If you have added new functionality, please include relevant unit tests.


Documentation

  • No updates are required.

Checklist

  • I have read the CONTRIBUTING documentation.
  • My code follows the coding standards of this project.
  • All new and existing tests passed.

@jakehwll jakehwll marked this pull request as ready for review January 12, 2026 12:00
@jakehwll jakehwll changed the title Fix account settings types fix(docs): Fix account settings types Jan 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant