---
title: "Update Feature Flags"
method: PATCH
path: "/developer/feature-flags"
tags: ["Developer", "Developer - Settings"]
---

# Update Feature Flags

`PATCH /developer/feature-flags`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/developer/feature-flags`
- Auth: none declared

Update the feature flags for the current customer.

This endpoint is restricted to developer users only.

- **cases_enabled**: Whether cases feature is enabled
- **leads_enabled**: Whether leads feature is enabled
- **messages_enabled**: Whether messages feature is enabled
- **case_notes_enabled**: Whether case notes feature is enabled
- **known_contacts_enabled**: Whether known contacts feature is enabled

## Request body

- UpdateFeatureFlagsRequest: Update feature flags request model (developer only)
  - `gpt_live_pilot_enabled` boolean, nullable: Enable the OpenIntake dev GPT-Live browser pilot
  - `cases_enabled` boolean, nullable: Whether cases feature is enabled
  - `leads_enabled` boolean, nullable: Whether leads feature is enabled
  - `messages_enabled` boolean, nullable: Whether messages feature is enabled
  - `case_notes_enabled` boolean, nullable: Whether case notes feature is enabled
  - `known_contacts_enabled` boolean, nullable: Whether known contacts feature is enabled
  - `inquiries_enabled` boolean, nullable: Whether inquiries feature is enabled
  - `reports_enabled` boolean, nullable: Whether reports feature is enabled
  - `availability_blocks_enabled` boolean, nullable: Whether availability blocks feature is enabled
  - `outbound_enabled` boolean, nullable: Whether outbound leads feature is enabled
  - `staff_enabled` boolean, nullable: Whether staff management feature is enabled
  - `practicepanther_enabled` boolean, nullable: Whether PracticePanther integration is enabled
  - `lead_scoring_enabled` boolean, nullable: Whether lead scoring is enabled
  - `settlement_metrics_enabled` boolean, nullable: Enable Settlement Metrics and TV pairing
  - `chat_widget_enabled` boolean, nullable: Whether chat widget feature is enabled
  - `info_request_enabled` boolean, nullable: Whether info request SMS feature is enabled
  - `google_calendar_enabled` boolean, nullable: Whether the Google Workspace integration (calendar/directory) is enabled
  - `microsoft365_enabled` boolean, nullable: Whether Microsoft 365 integration is enabled
  - `zoho_enabled` boolean, nullable: Whether Zoho integration is enabled
  - `ringcentral_enabled` boolean, nullable: Whether RingCentral integration is enabled
  - `smartadvocate_enabled` boolean, nullable: Whether SmartAdvocate integration is enabled
  - `smartadvocate_negotiator_report_enabled` boolean, nullable: Enable the daily SmartAdvocate Negotiator Activity Report email (requires SmartAdvocate)
  - `intake_forms_enabled` boolean, nullable: Whether intake forms feature is enabled
  - `business_hours_enabled` boolean, nullable: Whether business hours feature is enabled
  - `filevine_enabled` boolean, nullable: Whether Filevine integration is enabled
  - `vxt_enabled` boolean, nullable: Whether VXT integration is enabled
  - `lead_docket_enabled` boolean, nullable: Whether Lead Docket integration is enabled
  - `lead_docket_chat_enabled` boolean, nullable: Whether completed-chat Lead Docket opportunity delivery is enabled
  - `croo_enabled` boolean, nullable: Whether Croo integration is enabled
  - `intakes_enabled` boolean, nullable: Whether the Intakes page (imported intake recordings) is enabled
  - `realtime_transcripts_enabled` boolean, nullable: Whether realtime transcript webhook ingestion is enabled
  - `realtime_lead_scoring_enabled` boolean, nullable: Whether the live (mid-call) lead scoring tool is enabled
  - `docusign_enabled` boolean, nullable: Whether DocuSign integration is enabled
  - `zapier_enabled` boolean, nullable: Whether the Zapier integration is enabled
  - `zapier_chat_enabled` boolean, nullable: Whether completed-chat Zapier routing is enabled
  - `case_match_corrections_enabled` boolean, nullable: Whether end users can correct case matches on the call detail page
  - `granola_enabled` boolean, nullable: Whether the Granola meeting-notes integration is enabled
  - `ringcentral_outbound_calls_enabled` boolean, nullable: Whether staged RingCentral outbound calls graduate into canonical call records
  - `transcript_filing_enabled` boolean, nullable: Whether the Google Drive transcript-filing automation is enabled
  - `google_contacts_sync_enabled` boolean, nullable: Whether Google contacts sync is enabled (scopes only for now)
  - `google_email_sync_enabled` boolean, nullable: Whether Google email (Gmail) sync is enabled (scopes only for now)
  - `clio_enabled` boolean, nullable: Whether the Clio Manage integration is enabled
  - `clio_grow_enabled` boolean, nullable: Whether the Clio Grow integration is enabled
  - `drive_case_matching_enabled` boolean, nullable: Whether case matching uses the Google Drive matter mirror as the case provider
  - `rc_contact_sync_enabled` boolean, nullable: Whether Google contacts are proposed for sync into the customer's RingCentral address book
  - `custom_trigger_enabled` boolean, nullable: Whether custom trigger webhook endpoints are enabled
  - `ghl_enabled` boolean, nullable: Whether the GoHighLevel integration is enabled
  - `onedrive_enabled` boolean, nullable: Whether the OneDrive integration (call transcript/recording upload) is enabled
  - `onedrive_readable_filenames_enabled` boolean, nullable: Whether OneDrive uploads are named by local call time and caller name, without the call-id suffix
  - `outlook_enabled` boolean, nullable: Whether the Outlook intake mailbox integration (delegated sign-in and inbox polling) is enabled
  - `partner_leads_enabled` boolean, nullable: Whether Partner Leads (outside lead partners POSTing leads to /v1/referrals with an API key) is enabled
  - `inbox_automation_enabled` boolean, nullable: Whether Inbox Automation (screening and extracting intake mail per inbox profile) is enabled
  - `blocked_callers_enabled` boolean, nullable: Whether Blocked Callers (a list of blocked phone numbers whose calls and chats can be refused transfers and/or produce no notifications) is enabled
  - `every_call_creates_lead_enabled` boolean, nullable: Whether every inbound human call creates a lead, even ones classified as not substantial or as an inquiry
  - `vapi_transfers_enabled` boolean, nullable: Whether Vapi-native transferCall warm transfers (Vapi owns the Twilio bridge) are enabled — records the whole parent Twilio call so the post-transfer staff conversation is captured. Distinct from VXT blind transfers and the attended-transfer (provider-bypass) flow
  - `transfer_destinations_enabled` boolean, nullable: Whether the Transfer Destinations settings page (named transfer phone numbers) is enabled
  - `test_transfer_numbers_enabled` boolean, nullable: Whether test calls resolve dynamic transfers to each destination's test phone number instead of the real number
  - `netsapiens_enabled` boolean, nullable: Whether the NetSapiens PBX integration (CDR mirroring, staff-leg recordings, event subscriptions) is enabled
  - `on_call_schedule_enabled` boolean, nullable: Whether the on-call hours settings card is enabled
  - `bounce_back_enabled` boolean, nullable: Whether bounce-back handling (matching returned unanswered transfers to their original call) is enabled
  - `transfer_metrics_enabled` boolean, nullable: Whether the Transfer Metrics dashboard is visible to this customer's admins
  - `pbx_recording_stitch_enabled` boolean, nullable: Whether answered transfers hold their pipeline for the staff-side PBX recording stitch
  - `outbound_callbacks_enabled` boolean, nullable: Whether un-reached outbound leads are automatically re-dialed on the callback stage ladder
  - `outbound_text_fallback_enabled` boolean, nullable: Whether the outbound texting program (missed-call and after-hours texts) is available; texts only send once it is also armed
  - `referral_portal_enabled` boolean, nullable: Whether the referral portal (standalone login portal for outside referrers + Referrals tab) is enabled
  - `intake_link_enabled` boolean, nullable: Whether intake links (a private link a client follows to give their full intake) are enabled
  - `negotiation_calls_enabled` boolean, nullable: Whether the Negotiations tab (transferred calls containing settlement-negotiation conversation) is enabled
  - `texts_enabled` boolean, nullable: Whether the Texts page (two-way SMS threads with contacts) is enabled
  - `interviews_enabled` boolean, nullable: Whether intake interview lines and their post-call Word documents are enabled
  - `hide_calls_page` boolean, nullable: Whether the Calls page and call details are hidden
  - `analytics_enabled` boolean, nullable: Whether the Analytics tab is enabled
  - `appointment_reminder_notifications_enabled` boolean, nullable: Whether automated appointment reminder calls are emailed to the firm
  - `test_calls_enabled` boolean, nullable: Whether the Calls page Test Call button is shown
  - `email_intake_agent_enabled` boolean, nullable: Whether the email intake agent is enabled (scopes only for now)
  - `google_sheets_enabled` boolean, nullable: Whether Google Sheets lead sync is enabled (scopes only for now)
  - `google_calendar_full_access_enabled` boolean, nullable: Whether full Google Calendar access is enabled (scope only for now)

## Response `200`

Successful Response

- FeatureFlagsResponse: Feature flags response model
  - `gpt_live_pilot_enabled` boolean: Enable the OpenIntake dev GPT-Live browser pilot
  - `cases_enabled` boolean, required: Whether cases feature is enabled for this customer
  - `leads_enabled` boolean, required: Whether leads feature is enabled for this customer
  - `messages_enabled` boolean, required: Whether messages feature is enabled for this customer
  - `case_notes_enabled` boolean, required: Whether case notes feature is enabled for this customer
  - `known_contacts_enabled` boolean, required: Whether known contacts feature is enabled for this customer
  - `inquiries_enabled` boolean, required: Whether inquiries feature is enabled for this customer
  - `reports_enabled` boolean, required: Whether reports feature is enabled for this customer
  - `availability_blocks_enabled` boolean, required: Whether availability blocks feature is enabled for this customer
  - `outbound_enabled` boolean, required: Whether outbound leads feature is enabled for this customer
  - `staff_enabled` boolean, required: Whether staff management feature is enabled for this customer
  - `practicepanther_enabled` boolean, required: Whether PracticePanther integration is enabled for this customer
  - `lead_scoring_enabled` boolean, required: Whether lead scoring is enabled for this customer
  - `settlement_metrics_enabled` boolean: Whether Settlement Metrics and TV pairing are enabled
  - `chat_widget_enabled` boolean, required: Whether chat widget feature is enabled for this customer
  - `info_request_enabled` boolean, required: Whether info request SMS feature is enabled for this customer
  - `google_calendar_enabled` boolean, required: Whether the Google Workspace integration (calendar/directory) is enabled for this customer (key kept as google_calendar_enabled for compatibility)
  - `microsoft365_enabled` boolean, required: Whether Microsoft 365 integration is enabled for this customer
  - `zoho_enabled` boolean, required: Whether Zoho integration is enabled for this customer
  - `ringcentral_enabled` boolean, required: Whether RingCentral integration is enabled for this customer
  - `smartadvocate_enabled` boolean, required: Whether SmartAdvocate integration is enabled for this customer
  - `smartadvocate_negotiator_report_enabled` boolean: Whether the daily SmartAdvocate Negotiator Activity Report email is enabled (requires SmartAdvocate)
  - `intake_forms_enabled` boolean, required: Whether intake forms feature is enabled for this customer
  - `business_hours_enabled` boolean, required: Whether business hours feature is enabled for this customer
  - `filevine_enabled` boolean, required: Whether Filevine integration is enabled for this customer
  - `vxt_enabled` boolean, required: Whether VXT integration is enabled for this customer
  - `lead_docket_enabled` boolean, required: Whether Lead Docket integration is enabled for this customer
  - `lead_docket_chat_enabled` boolean: Whether completed-chat Lead Docket opportunity delivery is enabled for this customer
  - `croo_enabled` boolean, required: Whether Croo integration is enabled for this customer
  - `intakes_enabled` boolean, required: Whether the Intakes page (imported intake recordings) is enabled for this customer
  - `realtime_transcripts_enabled` boolean, required: Whether realtime transcript webhook ingestion is enabled for this customer
  - `realtime_lead_scoring_enabled` boolean, required: Whether the live (mid-call) lead scoring tool is enabled for this customer
  - `docusign_enabled` boolean, required: Whether DocuSign integration is enabled for this customer
  - `zapier_enabled` boolean, required: Whether the Zapier integration is enabled for this customer
  - `zapier_chat_enabled` boolean: Whether completed-chat Zapier routing is enabled for this customer
  - `case_match_corrections_enabled` boolean, required: Whether end users can correct case matches (change matched case / re-run matching) on the call detail page
  - `granola_enabled` boolean, required: Whether the Granola meeting-notes integration is enabled for this customer
  - `ringcentral_outbound_calls_enabled` boolean, required: Whether staged RingCentral outbound calls graduate into canonical call records for this customer
  - `transcript_filing_enabled` boolean, required: Whether the Google Drive transcript-filing automation is enabled for this customer
  - `google_contacts_sync_enabled` boolean, required: Whether Google contacts sync is enabled for this customer (scopes only for now; no sync behavior yet)
  - `google_email_sync_enabled` boolean, required: Whether Google email (Gmail) sync is enabled for this customer (scopes only for now; no sync behavior yet)
  - `clio_enabled` boolean, required: Whether the Clio Manage integration is enabled for this customer
  - `clio_grow_enabled` boolean, required: Whether the Clio Grow integration is enabled for this customer
  - `drive_case_matching_enabled` boolean, required: Whether case matching uses the Google Drive matter mirror as the case provider for this customer
  - `rc_contact_sync_enabled` boolean, required: Whether Google contacts are proposed for sync into the customer's RingCentral address book (separate RC contacts app)
  - `custom_trigger_enabled` boolean, required: Whether custom trigger webhook endpoints are enabled for this customer
  - `ghl_enabled` boolean, required: Whether the GoHighLevel integration is enabled for this customer
  - `onedrive_enabled` boolean, required: Whether the OneDrive integration (call transcript/recording upload) is enabled for this customer
  - `onedrive_readable_filenames_enabled` boolean, required: Whether OneDrive uploads are named by local call time and caller name, without the call-id suffix
  - `outlook_enabled` boolean, required: Whether the Outlook intake mailbox integration (delegated sign-in and inbox polling) is enabled for this customer
  - `partner_leads_enabled` boolean, required: Whether Partner Leads (outside lead partners POSTing leads to /v1/referrals with an API key) is enabled for this customer
  - `inbox_automation_enabled` boolean, required: Whether Inbox Automation (screening and extracting intake mail per inbox profile) is enabled for this customer
  - `blocked_callers_enabled` boolean, required: Whether Blocked Callers (a list of blocked phone numbers whose calls and chats can be refused transfers and/or produce no notifications) is enabled for this customer
  - `every_call_creates_lead_enabled` boolean, required: Whether every inbound human call creates a lead, even ones classified as not substantial or as an inquiry
  - `vapi_transfers_enabled` boolean, required: Whether Vapi-native transferCall warm transfers (Vapi owns the Twilio bridge) are enabled for this customer — records the whole parent Twilio call so the post-transfer staff conversation is captured. Distinct from VXT blind transfers and the attended-transfer (provider-bypass) flow
  - `transfer_destinations_enabled` boolean, required: Whether the Transfer Destinations settings page (named transfer phone numbers) is enabled for this customer
  - `test_transfer_numbers_enabled` boolean, required: Whether test calls resolve dynamic transfers to each destination's test phone number instead of the real number
  - `netsapiens_enabled` boolean, required: Whether the NetSapiens PBX integration (CDR mirroring, staff-leg recordings, event subscriptions) is enabled for this customer
  - `on_call_schedule_enabled` boolean, required: Whether the on-call hours settings card is enabled for this customer
  - `bounce_back_enabled` boolean, required: Whether bounce-back handling is enabled: calls to a bounce-back number are matched to the caller's recent transferred-out call and the original conversation is injected into the bounce-back squad
  - `transfer_metrics_enabled` boolean, required: Whether the Transfer Metrics dashboard (team pickup/missed rates) is visible to this customer's admins
  - `pbx_recording_stitch_enabled` boolean, required: Whether answered transfers hold their pipeline for the staff-side PBX recording to be fetched, transcribed, and stitched (full-conversation grading/summaries)
  - `outbound_callbacks_enabled` boolean, required: Whether outbound leads we never reached a live person on are automatically re-dialed on the customer's callback stage ladder
  - `outbound_text_fallback_enabled` boolean, required: Whether the outbound texting program (missed-call and after-hours texts) is available to this customer; texts only send once it is also armed in outbound settings
  - `referral_portal_enabled` boolean, required: Whether the referral portal (standalone login portal for outside referrers + Referrals dashboard tab) is enabled
  - `intake_link_enabled` boolean, required: Whether intake links (a private link a client follows to give their full intake, which creates or finishes their SmartAdvocate case) are enabled
  - `negotiation_calls_enabled` boolean, required: Whether the Negotiations tab (transferred calls containing settlement-negotiation conversation) is visible to this customer's admins
  - `texts_enabled` boolean, required: Whether the Texts page (two-way SMS threads with contacts) is visible to this customer's admins and staff
  - `interviews_enabled` boolean, required: Whether intake interview lines run their interview and produce a filled Word document after each call
  - `hide_calls_page` boolean, required: Whether the Calls page and call details are hidden from this customer's admins and staff
  - `analytics_enabled` boolean, required: Whether the Analytics tab (call volume, answer rates, outcomes and leads over time) is visible to this customer's admins
  - `appointment_reminder_notifications_enabled` boolean, required: Whether inbound calls are screened for automated appointment reminders, each emailed to the firm's appointment reminder recipients
  - `test_calls_enabled` boolean, required: Whether the Calls page shows a Test Call button that has the firm's outbound agent call a number with typed-in context
  - `email_intake_agent_enabled` boolean, required: Whether the email intake agent is enabled for this customer (Gmail read/send scopes only for now; no agent behavior yet)
  - `google_sheets_enabled` boolean, required: Whether Google Sheets lead sync is enabled for this customer (Drive/Sheets/Docs scopes only for now; no sync behavior yet)
  - `google_calendar_full_access_enabled` boolean, required: Whether full Google Calendar access is enabled for this customer (scope only for now; no new calendar behavior yet)

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-29** `ceeae5525826`: 1 breaking, 1 warning
  - removed the required property `law_firm_info_prompt_enabled` from the response with the `200` status
  - removed the request property `law_firm_info_prompt_enabled`
- **2026-10-28** `ace1ee243d0d`: 2 info
  - added the new optional request property `google_calendar_full_access_enabled`
  - added the required property `google_calendar_full_access_enabled` to the response with the `200` status
- **2026-10-28** `b7f6f4f8bb5e`: 4 info
  - added the new optional request property `email_intake_agent_enabled`
  - added the new optional request property `google_sheets_enabled`
  - added the required property `email_intake_agent_enabled` to the response with the `200` status
  - added the required property `google_sheets_enabled` to the response with the `200` status
- **2026-10-26** `62d10ad76f8c`: 2 info
  - added the new optional request property `intake_link_enabled`
  - added the required property `intake_link_enabled` to the response with the `200` status
- **2026-10-26** `e025cd567602`: 2 info
  - added the new optional request property `test_calls_enabled`
  - added the required property `test_calls_enabled` to the response with the `200` status

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/developer/feature-flags/patch.md)

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
