{"openapi":"3.1.0","info":{"title":"Interactly API","description":"API for building interactly.ai services","version":"1.1.0","contact":{"name":"Interactly","url":"https://interactly.ai","email":"developers@interactly.ai"}},"servers":[{"url":"https://api-qa.interactly.ai","description":"API Server"}],"paths":{"/integrations/v1/ms/auth":{"get":{"tags":["Auth"],"summary":"Login","description":"Redirect user to Microsoft login; carries teamId, userId and optional UI redirect in state.","operationId":"integrations_service_login_v1_ms_auth_get","parameters":[{"name":"score","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Score"}},{"name":"redirect","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/debug":{"get":{"tags":["Admin"],"summary":"Debug","description":"Debug endpoint to inspect computed OAuth values.","operationId":"integrations_service_debug_debug_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/reset":{"post":{"tags":["Admin"],"summary":"Reset Integrations","description":"Delete the IntegrationTokens document for a team to start fresh.\n\nRequires `team_id` in query. Idempotent: if nothing exists, returns success anyway.","operationId":"integrations_service_reset_integrations_v1_reset_post","parameters":[{"name":"team_id","in":"query","required":true,"schema":{"type":"string","description":"Team ID to reset integrations for","title":"Team Id"},"description":"Team ID to reset integrations for"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/admin/team/overview":{"get":{"tags":["Admin"],"summary":"Team Overview","description":"Return an overview of all integration-related documents for a team (tokens, groups, configs).","operationId":"integrations_service_team_overview_v1_admin_team_overview_get","parameters":[{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Explicit team id override; if omitted uses header teamid","title":"Team Id"},"description":"Explicit team id override; if omitted uses header teamid"},{"name":"mask","in":"query","required":false,"schema":{"type":"boolean","description":"Mask sensitive auth fields","default":true,"title":"Mask"},"description":"Mask sensitive auth fields"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/admin/team/integration-tokens":{"get":{"tags":["Admin"],"summary":"Get Integration Tokens","operationId":"integrations_service_get_integration_tokens_v1_admin_team_integration_tokens_get","parameters":[{"name":"team_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Id"}},{"name":"mask","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Mask"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/admin/indexes":{"get":{"tags":["Admin"],"summary":"List Indexes","description":"List indexes for integration-related collections.","operationId":"integrations_service_list_indexes_v1_admin_indexes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/admin/use-case-runs/past-analysis":{"get":{"tags":["Admin"],"summary":"Get Past Analysis","description":"Return past analysis records and resolved final status for a given run_id + patient_uuid.\n\nThis is used by downstream services (e.g., assistant evaluation) to reconcile\ncurrent confirmation status with past final outcomes for the same run.","operationId":"integrations_service_get_past_analysis_v1_admin_use_case_runs_past_analysis_get","parameters":[{"name":"run_id","in":"query","required":true,"schema":{"type":"string","description":"Run ID for the use-case","title":"Run Id"},"description":"Run ID for the use-case"},{"name":"patient_uuid","in":"query","required":true,"schema":{"type":"string","description":"Patient UUID","title":"Patient Uuid"},"description":"Patient UUID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PastAnalysisResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/connected-integrations":{"get":{"tags":["Integrations"],"summary":"List Integrations Alias","description":"Return integrations that have connectedAt set (i.e., connection was established at some point).","operationId":"integrations_service_list_integrations_alias_v1_connected_integrations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/integrations_service__src__models__integrations__IntegrationsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/integrations/{integration}":{"get":{"tags":["Integrations"],"summary":"Get Integration","operationId":"integrations_service_get_integration_v1_integrations__integration__get","parameters":[{"name":"integration","in":"path","required":true,"schema":{"type":"string","title":"Integration"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"delete":{"tags":["Integrations"],"summary":"Delete Integration","operationId":"integrations_service_delete_integration_v1_integrations__integration__delete","parameters":[{"name":"integration","in":"path","required":true,"schema":{"type":"string","title":"Integration"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/integrations/{integration}/disconnect":{"post":{"tags":["Integrations"],"summary":"Disconnect Integration","operationId":"integrations_service_disconnect_integration_v1_integrations__integration__disconnect_post","parameters":[{"name":"integration","in":"path","required":true,"schema":{"type":"string","title":"Integration"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/integrations/{integration}/reconnect":{"post":{"tags":["Integrations"],"summary":"Reconnect Integration","description":"Reconnect an integration: sets isActive=True and updates tokens, keeps connectedAt unchanged.\nErrors if integration is not already connected.","operationId":"integrations_service_reconnect_integration_v1_integrations__integration__reconnect_post","parameters":[{"name":"integration","in":"path","required":true,"schema":{"type":"string","title":"Integration"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/use-cases":{"get":{"tags":["Use Cases"],"summary":"List Use Cases","description":"Return the static catalog of available use cases including defaults and examples.\n\nEach entry now includes:\n  - key\n  - description\n  - allowed_action_types\n  - defaults (default config snippet)\n  - example_payload (sample body for create-use-cases)","operationId":"integrations_service_list_use_cases_v1_use_cases_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/use-cases/{use_case}/schema":{"get":{"tags":["Use Cases"],"summary":"Get Use Case Schema","description":"Return JSON schemas plus defaults & example payload for a specific use case.","operationId":"integrations_service_get_use_case_schema_v1_use_cases__use_case__schema_get","parameters":[{"name":"use_case","in":"path","required":true,"schema":{"$ref":"#/components/schemas/UseCaseType"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/integrations/{integration}/use-case-groups":{"post":{"tags":["Use Cases"],"summary":"Upsert Group And Usecases","description":"Create or update a UseCaseGroup and REPLACE its use-case configs with the provided list in one call.\n\n- If payload.group_id is provided, update the existing group; otherwise create a new one.\n- The set of configs under the group will be made to exactly match payload.use_cases.\n  • If payload.use_cases is empty, all existing configs for the group are deleted.","operationId":"integrations_service_upsert_group_and_usecases_v1_integrations__integration__use_case_groups_post","parameters":[{"name":"integration","in":"path","required":true,"schema":{"$ref":"#/components/schemas/IntegrationType"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UseCaseGroupUpsertRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"get":{"tags":["Use Cases"],"summary":"List Use Case Groups","operationId":"integrations_service_list_use_case_groups_v1_integrations__integration__use_case_groups_get","parameters":[{"name":"integration","in":"path","required":true,"schema":{"$ref":"#/components/schemas/IntegrationType"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/integrations/{integration}/use-case-groups/{group_id}":{"get":{"tags":["Use Cases"],"summary":"Get Use Case Group","operationId":"integrations_service_get_use_case_group_v1_integrations__integration__use_case_groups__group_id__get","parameters":[{"name":"integration","in":"path","required":true,"schema":{"$ref":"#/components/schemas/IntegrationType"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"delete":{"tags":["Use Cases"],"summary":"Delete Use Case Group","operationId":"integrations_service_delete_use_case_group_v1_integrations__integration__use_case_groups__group_id__delete","parameters":[{"name":"integration","in":"path","required":true,"schema":{"$ref":"#/components/schemas/IntegrationType"}},{"name":"group_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/public/v1/cadence/reset":{"delete":{"tags":["Cadence Public","integrations_cadence_public"],"summary":"Reset","description":"Delete cadence logs for a given team/assistant/user (destructive).\n\nBehavior:\n- Protected from production (environment must be non-empty and not 'prod'/'production').\n- Requires team id via Requester dependency.\n- If `userPhoneNumber` is provided, deletes Action logs for that phone (and optionally scope by assistantId).\n- If `userPhoneNumber` is NOT provided, `confirm=True` is required to allow deletion of logs at the team/assistant level.","operationId":"integrations_service_reset_public_v1_cadence_reset_delete","parameters":[{"name":"assistantId","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional assistant id to scope reset","title":"Assistantid"},"description":"Optional assistant id to scope reset"},{"name":"userPhoneNumber","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional patient phone to scope reset","title":"Userphonenumber"},"description":"Optional patient phone to scope reset"},{"name":"confirm","in":"query","required":false,"schema":{"type":"boolean","description":"Required true when performing team/assistant level destructive reset without userPhoneNumber","default":false,"title":"Confirm"},"description":"Required true when performing team/assistant level destructive reset without userPhoneNumber"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"get":{"tags":["Cadence Public","integrations_cadence_public"],"summary":"Reset Get","operationId":"integrations_service_reset_get_public_v1_cadence_reset_get","parameters":[{"name":"assistantId","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional assistant id to scope reset","title":"Assistantid"},"description":"Optional assistant id to scope reset"},{"name":"userPhoneNumber","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional patient phone to scope reset","title":"Userphonenumber"},"description":"Optional patient phone to scope reset"},{"name":"confirm","in":"query","required":false,"schema":{"type":"boolean","description":"Required true when performing team/assistant level destructive reset without userPhoneNumber","default":false,"title":"Confirm"},"description":"Required true when performing team/assistant level destructive reset without userPhoneNumber"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/public/v1/cadence/{integration}/get-records":{"post":{"tags":["Cadence Public","integrations_cadence_public"],"summary":"Get Records","operationId":"integrations_service_get_records_public_v1_cadence__integration__get_records_post","parameters":[{"name":"integration","in":"path","required":true,"schema":{"type":"string","title":"Integration"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRecordsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRecordsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/public/v1/cadence/run-now":{"get":{"tags":["Cadence Public","integrations_cadence_public"],"summary":"Run Now","operationId":"integrations_service_run_now_public_v1_cadence_run_now_get","parameters":[{"name":"group_id","in":"query","required":true,"schema":{"type":"string","description":"Use-case group id to run","title":"Group Id"},"description":"Use-case group id to run"},{"name":"live_sheet_link","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional override for group's live sheet link (Microsoft share link)","title":"Live Sheet Link"},"description":"Optional override for group's live sheet link (Microsoft share link)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/public/v1/cadence/status":{"get":{"tags":["Cadence Public","integrations_cadence_public"],"summary":"Get Status","description":"Return the latest cadence run log for the given group from Mongo.\n\nRequires teamid header to scope results. Returns 404 if no log exists.","operationId":"integrations_service_get_status_public_v1_cadence_status_get","parameters":[{"name":"group_id","in":"query","required":true,"schema":{"type":"string","description":"Use-case group id to fetch last run status","title":"Group Id"},"description":"Use-case group id to fetch last run status"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/public/v1/cadence/run":{"get":{"tags":["Cadence Public","integrations_cadence_public"],"summary":"Run Legacy","operationId":"integrations_service_run_legacy_public_v1_cadence_run_get","parameters":[{"name":"group_id","in":"query","required":true,"schema":{"type":"string","description":"Use-case group id to run","title":"Group Id"},"description":"Use-case group id to run"},{"name":"start","in":"query","required":false,"schema":{"type":"boolean","description":"When false, return prepared summary; when true, execute","default":false,"title":"Start"},"description":"When false, return prepared summary; when true, execute"},{"name":"live_sheet_link","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional override for group's live sheet link (Microsoft share link)","title":"Live Sheet Link"},"description":"Optional override for group's live sheet link (Microsoft share link)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/public/v1/cadence/patient-uuid-analysis":{"get":{"tags":["Cadence Public","integrations_cadence_public"],"summary":"Patient Uuid Analysis","description":"Return aggregated analysis of `UseCaseActionLog` grouped by unique patient UUID.\n\nSteps:\n- Resolve teamId from requester.\n- Find `UseCaseGroupRunLog` for teamId (+optional assistant_id) whose execution_date is in [start, end].\n- Collect distinct run_ids; fetch corresponding `UseCaseActionLog` documents for this team (+assistant_id).\n- Group logs by `payload.patient_uuid` and build an analysis dict similar in shape to `/[integration]/get-records`.","operationId":"integrations_service_patient_uuid_analysis_public_v1_cadence_patient_uuid_analysis_get","parameters":[{"name":"assistant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional assistant id to scope analysis","title":"Assistant Id"},"description":"Optional assistant id to scope analysis"},{"name":"start","in":"query","required":true,"schema":{"type":"string","description":"Start date (YYYY-MM-DD) for execution_date filter","title":"Start"},"description":"Start date (YYYY-MM-DD) for execution_date filter"},{"name":"end","in":"query","required":true,"schema":{"type":"string","description":"End date (YYYY-MM-DD) for execution_date filter (inclusive)","title":"End"},"description":"End date (YYYY-MM-DD) for execution_date filter (inclusive)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/cadence/run":{"get":{"tags":["Cadence Run","integrations_run"],"summary":"Run","operationId":"integrations_service_run_v1_cadence_run_get","parameters":[{"name":"group_id","in":"query","required":true,"schema":{"anyOf":[{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"string"}],"description":"Use-case group id to run","title":"Group Id"},"description":"Use-case group id to run"},{"name":"start","in":"query","required":false,"schema":{"type":"boolean","description":"Deprecated. Ignored.","default":false,"title":"Start"},"description":"Deprecated. Ignored."},{"name":"live_sheet_link","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional override for group's live sheet link (Microsoft share link)","title":"Live Sheet Link"},"description":"Optional override for group's live sheet link (Microsoft share link)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/integrations/reset":{"post":{"tags":["Integrations Admin"],"summary":"Reset Integrations","description":"Dangerous dev-only endpoint: remove ALL integration token documents (optionally all related use-case docs).\n\nSafeguards:\n- Requires confirm=true\n- Refuses to run if ENV indicates production\n- Returns counts of deleted documents","operationId":"integrations_service_reset_integrations_v1_integrations_reset_post","parameters":[{"name":"wipe_use_cases","in":"query","required":false,"schema":{"type":"boolean","description":"Also remove all use-case groups & configs","default":true,"title":"Wipe Use Cases"},"description":"Also remove all use-case groups & configs"},{"name":"confirm","in":"query","required":false,"schema":{"type":"boolean","description":"Must be true to actually perform the deletion","default":false,"title":"Confirm"},"description":"Must be true to actually perform the deletion"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v1/{integration}/verify-live-sheet":{"post":{"tags":["Verify sheets"],"summary":"Verify Live Sheet","operationId":"integrations_service_verify_live_sheet_v1__integration__verify_live_sheet_post","parameters":[{"name":"integration","in":"path","required":true,"schema":{"type":"string","title":"Integration"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyLiveSheetRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyLiveSheetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/integrations/{integration_id}/export":{"get":{"tags":["Integrations IO V2"],"summary":"Export Integration","operationId":"integrations_service_export_integration_v2_integrations__integration_id__export_get","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Id"}},{"name":"include_appointments","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Appointments"}},{"name":"include_patients","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Patients"}},{"name":"include_outreach","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Outreach"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationExportData"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/integrations/import":{"post":{"tags":["Integrations IO V2"],"summary":"Import Integration","description":"Accept an integration export payload and process the import in the background.\n\nReturns 202 immediately. The actual work (creating the integration, resource records,\nand use cases with remapped IDs) runs as a background task. Check the server logs\nfor completion status and any non-fatal errors.","operationId":"integrations_service_import_integration_v2_integrations_import_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationImportBody"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationImportAcknowledged"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/integrations/schema":{"get":{"tags":["Integrations V2"],"summary":"Get Integrations Schema","operationId":"integrations_service_get_integrations_schema_v2_integrations_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/integrations":{"post":{"tags":["Integrations V2"],"summary":"Create Integration","operationId":"integrations_service_create_integration_v2_integrations_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsBaseConfig"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"get":{"tags":["Integrations V2"],"summary":"List Integrations","operationId":"integrations_service_list_integrations_v2_integrations_get","parameters":[{"name":"filters","in":"query","required":true,"schema":{"$ref":"#/components/schemas/IntegrationsFilters"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of items per page","default":300,"title":"Size"},"description":"Number of items per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search keywords","title":"Search"},"description":"Search keywords"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by start time (ISO 8601 format)","title":"Start"},"description":"Filter by start time (ISO 8601 format)"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by end time (ISO 8601 format)","title":"End"},"description":"Filter by end time (ISO 8601 format)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/integrations_service__src__utils__response_models__IntegrationsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/integrations/{integration_id}":{"get":{"tags":["Integrations V2"],"summary":"Get Integration","operationId":"integrations_service_get_integration_v2_integrations__integration_id__get","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"patch":{"tags":["Integrations V2"],"summary":"Update Integration","operationId":"integrations_service_update_integration_v2_integrations__integration_id__patch","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsBaseConfig"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"delete":{"tags":["Integrations V2"],"summary":"Delete Integration","operationId":"integrations_service_delete_integration_v2_integrations__integration_id__delete","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/integrations/{integration_provider}/auth":{"get":{"tags":["Integrations V2"],"summary":"Oauth Authorize","operationId":"integrations_service_oauth_authorize_v2_integrations__integration_provider__auth_get","parameters":[{"name":"integration_provider","in":"path","required":true,"schema":{"$ref":"#/components/schemas/IntegrationProviders"}},{"name":"redirect","in":"query","required":false,"schema":{"type":"string","default":"","title":"Redirect"}},{"name":"integration_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Integration Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/use-cases/schema":{"get":{"tags":["Integrations Use Cases V2"],"summary":"Get Use Cases Schema","operationId":"integrations_service_get_use_cases_schema_v2_use_cases_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/use-cases":{"post":{"tags":["Integrations Use Cases V2"],"summary":"Create Integration","operationId":"integrations_service_create_integration_v2_use_cases_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsUseCasesBaseConfig"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsUseCasesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"get":{"tags":["Integrations Use Cases V2"],"summary":"List Integrations","operationId":"integrations_service_list_integrations_v2_use_cases_get","parameters":[{"name":"filters","in":"query","required":true,"schema":{"$ref":"#/components/schemas/IntegrationsUseCasesFilters"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of items per page","default":300,"title":"Size"},"description":"Number of items per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search keywords","title":"Search"},"description":"Search keywords"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by start time (ISO 8601 format)","title":"Start"},"description":"Filter by start time (ISO 8601 format)"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by end time (ISO 8601 format)","title":"End"},"description":"Filter by end time (ISO 8601 format)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsUseCasesListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/use-cases/{integration_use_case_id}":{"get":{"tags":["Integrations Use Cases V2"],"summary":"Get Integration","operationId":"integrations_service_get_integration_v2_use_cases__integration_use_case_id__get","parameters":[{"name":"integration_use_case_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Use Case Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsUseCasesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"patch":{"tags":["Integrations Use Cases V2"],"summary":"Update Integration","operationId":"integrations_service_update_integration_v2_use_cases__integration_use_case_id__patch","parameters":[{"name":"integration_use_case_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Use Case Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsUseCasesBaseConfig"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsUseCasesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"delete":{"tags":["Integrations Use Cases V2"],"summary":"Delete Integration","operationId":"integrations_service_delete_integration_v2_use_cases__integration_use_case_id__delete","parameters":[{"name":"integration_use_case_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Use Case Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsUseCasesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/assistant/integrations/{assistant_id}":{"get":{"tags":["Integrations Use Cases V2"],"summary":"Assistant Integrations","description":"Return all integration use-cases configured for a given assistant within the requester's team.\n\nThis endpoint is consumed by the Conversation Agent Service to determine which\nintegration-driven tools should be enabled for an assistant.","operationId":"integrations_service_assistant_integrations_v2_assistant_integrations__assistant_id__get","parameters":[{"name":"assistant_id","in":"path","required":true,"schema":{"type":"string","title":"Assistant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssistantIntegrationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/resource-records/schema":{"get":{"tags":["Integrations Resource Records V2"],"summary":"Get Resource Records Schema","operationId":"integrations_service_get_resource_records_schema_v2_resource_records_schema_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/resource-records":{"post":{"tags":["Integrations Resource Records V2"],"summary":"Create Resource Record","operationId":"integrations_service_create_resource_record_v2_resource_records_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsResourceRecordsBaseConfig"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsResourceRecordsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"get":{"tags":["Integrations Resource Records V2"],"summary":"List Resource Records","operationId":"integrations_service_list_resource_records_v2_resource_records_get","parameters":[{"name":"filters","in":"query","required":true,"schema":{"$ref":"#/components/schemas/IntegrationsResourceRecordsFilters"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of items per page","default":300,"title":"Size"},"description":"Number of items per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search keywords","title":"Search"},"description":"Search keywords"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by start time (ISO 8601 format)","title":"Start"},"description":"Filter by start time (ISO 8601 format)"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by end time (ISO 8601 format)","title":"End"},"description":"Filter by end time (ISO 8601 format)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsResourceRecordsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/resource-records/bulk":{"post":{"tags":["Integrations Resource Records V2"],"summary":"Create Resource Records Bulk","operationId":"integrations_service_create_resource_records_bulk_v2_resource_records_bulk_post","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationsResourceRecordsBaseConfig"},"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkIntegrationsResourceRecordsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/resource-records/{integration_resource_record_id}":{"get":{"tags":["Integrations Resource Records V2"],"summary":"Get Resource Record","operationId":"integrations_service_get_resource_record_v2_resource_records__integration_resource_record_id__get","parameters":[{"name":"integration_resource_record_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Resource Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsResourceRecordsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"patch":{"tags":["Integrations Resource Records V2"],"summary":"Update Resource Record","operationId":"integrations_service_update_resource_record_v2_resource_records__integration_resource_record_id__patch","parameters":[{"name":"integration_resource_record_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Resource Record Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsResourceRecordsBaseConfig"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]},"delete":{"tags":["Integrations Resource Records V2"],"summary":"Delete Resource Record","operationId":"integrations_service_delete_resource_record_v2_resource_records__integration_resource_record_id__delete","parameters":[{"name":"integration_resource_record_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Resource Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsResourceRecordsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/resource-records/{integration_id}/type/{resource_record_type}/sync":{"get":{"tags":["Integrations Resource Records V2"],"summary":"Sync Integration Resource Records Data","operationId":"integrations_service_sync_integration_resource_records_data_v2_resource_records__integration_id__type__resource_record_type__sync_get","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Id"}},{"name":"resource_record_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/IntegrationResourceRecordType"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of items per page","default":300,"title":"Size"},"description":"Number of items per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search keywords","title":"Search"},"description":"Search keywords"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by start time (ISO 8601 format)","title":"Start"},"description":"Filter by start time (ISO 8601 format)"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by end time (ISO 8601 format)","title":"End"},"description":"Filter by end time (ISO 8601 format)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationsResourceRecordsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/resource-records/{integration_id}/appointments/statistics":{"get":{"tags":["Integrations Resource Records V2"],"summary":"Get Appointments Dashboard","operationId":"integrations_service_get_appointments_dashboard_v2_resource_records__integration_id__appointments_statistics_get","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Id"}},{"name":"appointmentType","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter statistics by appointment type","title":"Appointmenttype"},"description":"Filter statistics by appointment type"},{"name":"debug","in":"query","required":false,"schema":{"type":"boolean","description":"Enable debug mode to include additional logging for troubleshooting","default":false,"title":"Debug"},"description":"Enable debug mode to include additional logging for troubleshooting"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of items per page","default":300,"title":"Size"},"description":"Number of items per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search keywords","title":"Search"},"description":"Search keywords"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by start time (ISO 8601 format)","title":"Start"},"description":"Filter by start time (ISO 8601 format)"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by end time (ISO 8601 format)","title":"End"},"description":"Filter by end time (ISO 8601 format)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppointmentsStatsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/resource-records/{integration_id}/patients/statistics":{"get":{"tags":["Integrations Resource Records V2"],"summary":"Get Patients Dashboard","operationId":"integrations_service_get_patients_dashboard_v2_resource_records__integration_id__patients_statistics_get","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Id"}},{"name":"debug","in":"query","required":false,"schema":{"type":"boolean","description":"Enable debug mode to include additional logging for troubleshooting","default":false,"title":"Debug"},"description":"Enable debug mode to include additional logging for troubleshooting"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Number of items per page","default":300,"title":"Size"},"description":"Number of items per page"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search keywords","title":"Search"},"description":"Search keywords"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by start time (ISO 8601 format)","title":"Start"},"description":"Filter by start time (ISO 8601 format)"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Filter by end time (ISO 8601 format)","title":"End"},"description":"Filter by end time (ISO 8601 format)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatientsStatsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/resource-records/{integration_id}/patients/{patient_mrn_id}/coverage/{coverage_id}":{"get":{"tags":["Integrations Resource Records V2"],"summary":"Get Patient Coverage Stedi Response","operationId":"integrations_service_get_patient_coverage_stedi_response_v2_resource_records__integration_id__patients__patient_mrn_id__coverage__coverage_id__get","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Id"}},{"name":"patient_mrn_id","in":"path","required":true,"schema":{"type":"string","title":"Patient Mrn Id"}},{"name":"coverage_id","in":"path","required":true,"schema":{"type":"string","title":"Coverage Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}},"/integrations/v2/resource-records/{integration_id}/patients/{patient_mrn_id}/coverage/{coverage_id}/uploaded-documents":{"get":{"tags":["Integrations Resource Records V2"],"summary":"Get Patient Coverage Uploaded Documents","operationId":"integrations_service_get_patient_coverage_uploaded_documents_v2_resource_records__integration_id__patients__patient_mrn_id__coverage__coverage_id__uploaded_documents_get","parameters":[{"name":"integration_id","in":"path","required":true,"schema":{"type":"string","minLength":24,"maxLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593","title":"Integration Id"}},{"name":"patient_mrn_id","in":"path","required":true,"schema":{"type":"string","title":"Patient Mrn Id"}},{"name":"coverage_id","in":"path","required":true,"schema":{"type":"string","title":"Coverage Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearer":[]}]}}},"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"Bearer","type":"http","description":"Retrieve your API Key from [Dashboard API Keys Section](https://dashboard-qa.interactly.ai/api-keys)."}},"schemas":{"ActionConfig":{"properties":{"day":{"type":"integer","title":"Day","description":"Numeric day value interpreted according to day_mode. day_before / day_after: simple day offset (e.g. 7 = 7 days before/after reference date). weekday_before / weekday_after: week+weekday encoding — 1=1st Mon, 2=1st Tue, ..., 7=1st Sun, 8=2nd Mon, etc."},"day_mode":{"$ref":"#/components/schemas/DayMode","description":"How to interpret the day field. 'day_before': X days before reference date (default). 'day_after': X days after reference date. 'weekday_before': week+weekday encoding before reference date. 'weekday_after': week+weekday encoding after reference date.","default":"day_before"},"weekend_behavior":{"$ref":"#/components/schemas/WeekendBehavior","description":"How to handle target dates that fall on weekends. 'none': no adjustment (default). 'next_weekday': Sat/Sun → Monday. 'previous_weekday': Sat/Sun → Friday.","default":"none"},"action_type":{"$ref":"#/components/schemas/ActionType"},"template_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Name","description":"Optional human-friendly label for the action (e.g. 'First SMS', 'Second Call')"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context","description":"Optional template / script / channel identifier as a simple string"}},"type":"object","required":["day","action_type"],"title":"ActionConfig"},"ActionLogItem":{"properties":{"run_id":{"type":"string","title":"Run Id"},"appointment_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Date"},"use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"sheet_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sheet Status"},"patient_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Uuid"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["run_id"],"title":"ActionLogItem"},"ActionType":{"type":"string","enum":["CALL","SMS"],"title":"ActionType"},"ActionsLogsRequest":{"properties":{"assistant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assistant Id"},"patient_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Phone"},"history":{"items":{"$ref":"#/components/schemas/HistoryItem"},"type":"array","title":"History"}},"type":"object","title":"ActionsLogsRequest"},"ActionsLogsResponse":{"properties":{"count":{"type":"integer","title":"Count"},"logs":{"items":{"$ref":"#/components/schemas/ActionLogItem"},"type":"array","title":"Logs"},"selected":{"anyOf":[{"$ref":"#/components/schemas/ActionLogItem"},{"type":"null"}]},"sms_template":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sms Template"}},"type":"object","required":["count"],"title":"ActionsLogsResponse"},"AddPatientCoverageRequest":{"properties":{"patient_id":{"type":"string","title":"Patient Id","description":"Identifier of the patient in the EHR system."},"location_id":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Location Id","description":"Location identifier. Required for Athena coverage creation; ignored for ECW."},"payment_method":{"$ref":"#/components/schemas/IntegrationPaymentMethod","description":"Patient's payment method (e.g. commercial_insurance, medicare, medicaid). Do not call this endpoint for self_pay — self-pay coverage is created automatically with the patient."},"member_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Member Id","description":"Member/subscriber ID on the insurance card."},"payer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payer Id","description":"The EHR's OWN insurance-payer resource id (e.g. resolved live via the insurance-payer resource search), used directly to set the coverage's payor - NOT the Stedi tradingPartnerServiceId that eligibility_check resolves, which lives in a different id space and does not identify a payer in the EHR."},"payer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payer Name","description":"Name of the insurance payer/carrier."},"insurance_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Id","description":"Insurance ID number, if distinct from member_id."},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date","description":"Coverage start date."},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date","description":"Coverage end date."},"eligibility_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eligibility Status","description":"Live eligibility check outcome (e.g. active/inactive/unable), if one ran. Recorded on the coverage record as a distinct field from its own on-file status, so front-desk staff can see it without it affecting whether post-booking outreach fires."}},"type":"object","required":["patient_id","payment_method"],"title":"AddPatientCoverageRequest","description":"Request payload to attach an insurance coverage record to an existing patient.\n\nThis is always a separate call from patient creation: self-pay coverage is embedded in the\npatient-create payload automatically, but real insurance coverage is never attached at\ncreate time and must be added afterward via this endpoint."},"AdjacencyGapRule-Input":{"properties":{"typeA":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","title":"Type A","example":"5eb7cf5a86d9755df3a6c593"},"typeB":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","title":"Type B","description":"Same as typeA to express a gap rule against occurrences of its own type (e.g. New Patient vs New Patient).","example":"5eb7cf5a86d9755df3a6c593"},"minGapMinutes":{"type":"integer","title":"Minimum Gap (minutes)","description":"Minimum time that must separate the end of one and the start of the other, in either order. A candidate of typeA within this gap of an existing typeB occupant (or vice versa) is rejected, even though the two windows don't overlap."}},"type":"object","required":["typeA","typeB","minGapMinutes"],"title":"Adjacency Gap Rule","description":"Minimum gap enforced between two appointment types in DIFFERENT, non-overlapping\nnominal blocks — e.g. 'no back-to-back New Patients'. Distinct from excludedWithTypes,\nwhich only governs types sharing the SAME overlapping window."},"AdjacencyGapRule-Output":{"properties":{"typeA":{"type":"string","title":"Type A","example":"5eb7cf5a86d9755df3a6c593"},"typeB":{"type":"string","title":"Type B","description":"Same as typeA to express a gap rule against occurrences of its own type (e.g. New Patient vs New Patient).","example":"5eb7cf5a86d9755df3a6c593"},"minGapMinutes":{"type":"integer","title":"Minimum Gap (minutes)","description":"Minimum time that must separate the end of one and the start of the other, in either order. A candidate of typeA within this gap of an existing typeB occupant (or vice versa) is rejected, even though the two windows don't overlap."}},"type":"object","required":["typeA","typeB","minGapMinutes"],"title":"Adjacency Gap Rule","description":"Minimum gap enforced between two appointment types in DIFFERENT, non-overlapping\nnominal blocks — e.g. 'no back-to-back New Patients'. Distinct from excludedWithTypes,\nwhich only governs types sharing the SAME overlapping window."},"AppointmentCancellationUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_cancellation","title":"Type","description":"Type of the use-case. Must be 'appointment_cancellation'","default":"appointment_cancellation","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for appointment cancellation","default":"Appointment Cancellation","input_field_not_visible":true},"communicationPreference":{"anyOf":[{"$ref":"#/components/schemas/SmsEmailCommunicationPreference"},{"type":"null"}],"title":"Communication Preference","description":"Preferred communication method for appointment cancellation notifications.","input_field_helper_text":"Select how patients should be notified for appointment cancellations. Only SMS and Email are supported for this use case."}},"type":"object","title":"Appointment Cancellation Use Case Configuration"},"AppointmentCancellationUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_cancellation","title":"Type","description":"Type of the use-case. Must be 'appointment_cancellation'","default":"appointment_cancellation","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for appointment cancellation","default":"Appointment Cancellation","input_field_not_visible":true},"communicationPreference":{"anyOf":[{"$ref":"#/components/schemas/SmsEmailCommunicationPreference"},{"type":"null"}],"title":"Communication Preference","description":"Preferred communication method for appointment cancellation notifications.","input_field_helper_text":"Select how patients should be notified for appointment cancellations. Only SMS and Email are supported for this use case."}},"type":"object","title":"Appointment Cancellation Use Case Configuration"},"AppointmentEnquiryUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_enquiry","title":"Type","description":"Type of the use-case. Must be 'appointment_enquiry'","default":"appointment_enquiry","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for appointment enquiry","default":"Appointment Enquiry","input_field_not_visible":true}},"type":"object","title":"Appointment Enquiry Use Case Configuration"},"AppointmentEnquiryUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_enquiry","title":"Type","description":"Type of the use-case. Must be 'appointment_enquiry'","default":"appointment_enquiry","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for appointment enquiry","default":"Appointment Enquiry","input_field_not_visible":true}},"type":"object","title":"Appointment Enquiry Use Case Configuration"},"AppointmentPayloadStrategy":{"type":"string","enum":["location_practitioner_patient_v1","provider_resource_patient_v1"],"title":"AppointmentPayloadStrategy","description":"How the Appointment-creation FHIR payload builds its participant/actor list."},"AppointmentReminderUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_reminder","title":"Type","description":"Type of the use-case. Must be 'appointment_reminder'","default":"appointment_reminder","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Reminders for newly scheduled patient appointments","default":"New Patients Appointment Reminder","input_field_not_visible":true},"allowedLocations":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Locations","description":"List of location ids for which the appointment reminder use-case applies.","input_field_helper_text":"Leave empty to allow all locations. Select specific locations to restrict the appointment reminder use-case to those locations only.","input_field_type":"integrations_locations_selection"},"allowedPractitioners":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Practitioners","description":"List of practitioner ids for which the appointment reminder use-case applies.","input_field_helper_text":"Leave empty to allow all practitioners. Select specific practitioners to restrict the appointment reminder use-case to those practitioners only.","input_field_type":"practitioners_selection"},"allowedVisitStatuses":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentVisitStatus"},"type":"array","title":"Allowed Visit Statuses (Legacy)","description":"(Legacy) List of visit statuses of the appointments for which the appointment reminder use-case applies.","input_field_not_visible":false},"allowedVisitStatusesIds":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Visit Status Codes","description":"List of visit status codes for which the appointment reminder use-case applies.","input_field_helper_text":"Leave empty to allow all Visit Statuses. Select specific Visit Statusresource records to restrict the insurance flow settings.","input_field_type":"integrations_visit_status_selection"},"allowedAppointmentTypeIds":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Appointment/Visit Types","description":"List of appointment type resource record ids for which the appointment reminder use-case applies.","input_field_helper_text":"Leave empty to allow all appointment types. Select specific appointment type resource records to restrict the appointment reminder use-case.","input_field_type":"integrations_appointment_types_selection"},"allowedAppointmentTypes":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentTypes"},"type":"array","title":"Allowed Appointment Types (Legacy)","description":"Deprecated legacy appointment type names kept for backwards compatibility. TODO: remove after migrating to allowedAppointmentTypeIds.","input_field_not_visible":false},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case","keep_collapsed":true}},"type":"object","title":"Appointment Reminder Use Case Configuration"},"AppointmentReminderUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_reminder","title":"Type","description":"Type of the use-case. Must be 'appointment_reminder'","default":"appointment_reminder","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Reminders for newly scheduled patient appointments","default":"New Patients Appointment Reminder","input_field_not_visible":true},"allowedLocations":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Locations","description":"List of location ids for which the appointment reminder use-case applies.","input_field_helper_text":"Leave empty to allow all locations. Select specific locations to restrict the appointment reminder use-case to those locations only.","input_field_type":"integrations_locations_selection"},"allowedPractitioners":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Practitioners","description":"List of practitioner ids for which the appointment reminder use-case applies.","input_field_helper_text":"Leave empty to allow all practitioners. Select specific practitioners to restrict the appointment reminder use-case to those practitioners only.","input_field_type":"practitioners_selection"},"allowedVisitStatuses":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentVisitStatus"},"type":"array","title":"Allowed Visit Statuses (Legacy)","description":"(Legacy) List of visit statuses of the appointments for which the appointment reminder use-case applies.","input_field_not_visible":false},"allowedVisitStatusesIds":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Visit Status Codes","description":"List of visit status codes for which the appointment reminder use-case applies.","input_field_helper_text":"Leave empty to allow all Visit Statuses. Select specific Visit Statusresource records to restrict the insurance flow settings.","input_field_type":"integrations_visit_status_selection"},"allowedAppointmentTypeIds":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Appointment/Visit Types","description":"List of appointment type resource record ids for which the appointment reminder use-case applies.","input_field_helper_text":"Leave empty to allow all appointment types. Select specific appointment type resource records to restrict the appointment reminder use-case.","input_field_type":"integrations_appointment_types_selection"},"allowedAppointmentTypes":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentTypes"},"type":"array","title":"Allowed Appointment Types (Legacy)","description":"Deprecated legacy appointment type names kept for backwards compatibility. TODO: remove after migrating to allowedAppointmentTypeIds.","input_field_not_visible":false},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case","keep_collapsed":true}},"type":"object","title":"Appointment Reminder Use Case Configuration"},"AppointmentReminderWithSheetUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_reminder_with_sheet","title":"Type","description":"Type of the use-case. Must be 'appointment_reminder_with_sheet'","default":"appointment_reminder_with_sheet","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Reminders for newly scheduled patient appointments","default":"New Patients Appointment Reminder","input_field_not_visible":true},"sheetLink":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Data Sheet Link","description":"Link to the appointment data sheet","input_field_type":"external_url_link"},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case"}},"type":"object","title":"Appointment Reminder With Sheet Use Case Configuration"},"AppointmentReminderWithSheetUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_reminder_with_sheet","title":"Type","description":"Type of the use-case. Must be 'appointment_reminder_with_sheet'","default":"appointment_reminder_with_sheet","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Reminders for newly scheduled patient appointments","default":"New Patients Appointment Reminder","input_field_not_visible":true},"sheetLink":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Data Sheet Link","description":"Link to the appointment data sheet","input_field_type":"external_url_link"},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case"}},"type":"object","title":"Appointment Reminder With Sheet Use Case Configuration"},"AppointmentReschedulingUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_rescheduling","title":"Type","description":"Type of the use-case. Must be 'appointment_rescheduling'","default":"appointment_rescheduling","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for appointment rescheduling","default":"Appointment Rescheduling","input_field_not_visible":true},"communicationPreference":{"anyOf":[{"$ref":"#/components/schemas/SmsEmailCommunicationPreference"},{"type":"null"}],"title":"Communication Preference","description":"Preferred communication method for appointment rescheduling notifications.","input_field_helper_text":"Select how patients should be notified for appointment rescheduling. Only SMS and Email are supported for this use case."}},"type":"object","title":"Appointment Rescheduling Use Case Configuration"},"AppointmentReschedulingUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_rescheduling","title":"Type","description":"Type of the use-case. Must be 'appointment_rescheduling'","default":"appointment_rescheduling","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for appointment rescheduling","default":"Appointment Rescheduling","input_field_not_visible":true},"communicationPreference":{"anyOf":[{"$ref":"#/components/schemas/SmsEmailCommunicationPreference"},{"type":"null"}],"title":"Communication Preference","description":"Preferred communication method for appointment rescheduling notifications.","input_field_helper_text":"Select how patients should be notified for appointment rescheduling. Only SMS and Email are supported for this use case."}},"type":"object","title":"Appointment Rescheduling Use Case Configuration"},"AppointmentSchedulingUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_scheduling","title":"Type","description":"Type of the use-case. Must be 'appointment_scheduling'","default":"appointment_scheduling","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for appointment scheduling","default":"Appointment Scheduling","input_field_not_visible":true},"communicationPreference":{"anyOf":[{"$ref":"#/components/schemas/SmsEmailCommunicationPreference"},{"type":"null"}],"title":"Communication Preference","description":"Preferred communication method for appointment scheduling notifications.","input_field_helper_text":"Select how patients should be notified for appointment scheduling. Only SMS and Email are supported for this use case."},"insurance_flow_settings":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceFlowSettings-Input"},{"type":"null"}],"title":"Insurance Flow Settings","description":"Optional configuration for insurance flow settings to be applied during appointment scheduling","keep_collapsed":true}},"type":"object","title":"Appointment Scheduling Use Case Configuration"},"AppointmentSchedulingUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_scheduling","title":"Type","description":"Type of the use-case. Must be 'appointment_scheduling'","default":"appointment_scheduling","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for appointment scheduling","default":"Appointment Scheduling","input_field_not_visible":true},"communicationPreference":{"anyOf":[{"$ref":"#/components/schemas/SmsEmailCommunicationPreference"},{"type":"null"}],"title":"Communication Preference","description":"Preferred communication method for appointment scheduling notifications.","input_field_helper_text":"Select how patients should be notified for appointment scheduling. Only SMS and Email are supported for this use case."},"insurance_flow_settings":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceFlowSettings-Output"},{"type":"null"}],"title":"Insurance Flow Settings","description":"Optional configuration for insurance flow settings to be applied during appointment scheduling","keep_collapsed":true}},"type":"object","title":"Appointment Scheduling Use Case Configuration"},"AppointmentSchedulingWithWaitlistUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_scheduling_with_waitlist","title":"Type","description":"Type of the use-case. Must be 'appointment_scheduling_with_waitlist'","default":"appointment_scheduling_with_waitlist","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for appointment scheduling with waitlist","default":"Appointment Scheduling with Waitlist","input_field_not_visible":true}},"type":"object","title":"Appointment Scheduling With Waitlist Use Case Configuration"},"AppointmentSchedulingWithWaitlistUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"appointment_scheduling_with_waitlist","title":"Type","description":"Type of the use-case. Must be 'appointment_scheduling_with_waitlist'","default":"appointment_scheduling_with_waitlist","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for appointment scheduling with waitlist","default":"Appointment Scheduling with Waitlist","input_field_not_visible":true}},"type":"object","title":"Appointment Scheduling With Waitlist Use Case Configuration"},"AppointmentTypeSlotRule-Input":{"properties":{"appointmentType":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","title":"Appointment Type","description":"References an AppointmentType resource record's own id (not its display text) — matches the `allowed_appointment_type_ids` convention used elsewhere in this codebase, so it's immune to the display text later being renamed and gets the same UI picker for free.","example":"5eb7cf5a86d9755df3a6c593","input_field_helper_text":"Select the appointment type resource record this rule applies to.","input_field_type":"integrations_appointment_types_selection"},"maxOccupantsOfThisType":{"type":"integer","title":"Max Occupants Of This Type","description":"How many appointments of THIS type may share the same candidate window together. E.g. FIN's 'NP' type: 1 (never two New Patients together); 'F/U' type: 2.","default":1},"excludedWithTypes":{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array","title":"Excluded With Types","description":"Other appointment types (by resource record id) that cannot share a slot with this one at all, regardless of maxOccupantsPerSlot headroom (e.g. a type that must never be double-booked with anything). Checked in both directions — declaring it on either type in the pair is sufficient. Leave empty when this type may freely share with any other type, subject only to maxOccupantsPerSlot and each type's own maxOccupantsOfThisType.","input_field_type":"integrations_appointment_types_selection"},"blocksEntireParentSlot":{"type":"boolean","title":"Blocks Entire Parent Slot","description":"When True, an occupant of this type (e.g. a New Patient visit taking the whole 30-minute block) makes the WHOLE `SlotCapacityRuleConfig.parentSlotMinutes`-aligned block subject to the flat maxOccupantsPerSlot cap — every other candidate anywhere in that block is evaluated against the whole block, not just its own overlapping window. With no blocking-type occupant present, candidates are evaluated against their own overlapping window only (the existing, unchanged behavior), which is what lets e.g. two Follow-ups each independently occupy a different half of the block.","default":false}},"type":"object","required":["appointmentType"],"title":"Appointment Type Slot Rule","description":"Capacity/compatibility rule for one appointment type within a shared slot. Generic by\ndesign — an integration with N appointment types configures N of these (one per type it\nschedules), rather than the rule engine hardcoding any single type (e.g. 'New Patient') as\na special case."},"AppointmentTypeSlotRule-Output":{"properties":{"appointmentType":{"type":"string","title":"Appointment Type","description":"References an AppointmentType resource record's own id (not its display text) — matches the `allowed_appointment_type_ids` convention used elsewhere in this codebase, so it's immune to the display text later being renamed and gets the same UI picker for free.","example":"5eb7cf5a86d9755df3a6c593","input_field_helper_text":"Select the appointment type resource record this rule applies to.","input_field_type":"integrations_appointment_types_selection"},"maxOccupantsOfThisType":{"type":"integer","title":"Max Occupants Of This Type","description":"How many appointments of THIS type may share the same candidate window together. E.g. FIN's 'NP' type: 1 (never two New Patients together); 'F/U' type: 2.","default":1},"excludedWithTypes":{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array","title":"Excluded With Types","description":"Other appointment types (by resource record id) that cannot share a slot with this one at all, regardless of maxOccupantsPerSlot headroom (e.g. a type that must never be double-booked with anything). Checked in both directions — declaring it on either type in the pair is sufficient. Leave empty when this type may freely share with any other type, subject only to maxOccupantsPerSlot and each type's own maxOccupantsOfThisType.","input_field_type":"integrations_appointment_types_selection"},"blocksEntireParentSlot":{"type":"boolean","title":"Blocks Entire Parent Slot","description":"When True, an occupant of this type (e.g. a New Patient visit taking the whole 30-minute block) makes the WHOLE `SlotCapacityRuleConfig.parentSlotMinutes`-aligned block subject to the flat maxOccupantsPerSlot cap — every other candidate anywhere in that block is evaluated against the whole block, not just its own overlapping window. With no blocking-type occupant present, candidates are evaluated against their own overlapping window only (the existing, unchanged behavior), which is what lets e.g. two Follow-ups each independently occupy a different half of the block.","default":false}},"type":"object","required":["appointmentType"],"title":"Appointment Type Slot Rule","description":"Capacity/compatibility rule for one appointment type within a shared slot. Generic by\ndesign — an integration with N appointment types configures N of these (one per type it\nschedules), rather than the rule engine hardcoding any single type (e.g. 'New Patient') as\na special case."},"AppointmentVars":{"properties":{"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration","description":"Length of the appointment in minutes."},"start_time":{"type":"string","title":"Start Time","description":"ISO 8601 timestamp for the appointment start (e.g., 2025-01-01T10:00:00Z)."},"location_id":{"anyOf":[{"type":"integer"},{"type":"string"}],"title":"Location Id","description":"Location identifier where the appointment will take place."},"practitioner_id":{"type":"string","title":"Practitioner Id","description":"Identifier of the practitioner assigned to the appointment."},"resource_provider_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Provider Id","description":"For a resource-based integration (e.g. FIN): the exact eCW scheduling-resource id actually being booked (PatientAppointment.resourceProviderId on GET). `practitioner_id` alongside it is the primary/main practitioner id, kept for consistency with the GET schema and for the FHIR Practitioner actor - slot fetch/check use `resource_provider_id` only and ignore `practitioner_id`. Absent for a direct single-practitioner booking with no separate resource."},"slot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slot Id","description":"Optional slot identifier representing the specific time slot for the appointment."},"patient_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Id","description":"Identifier of the patient for whom the appointment is scheduled."},"patient_request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Request Id","description":"Optional unique identifier provided by the frontend to idempotently create appointments."},"visit_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason","description":"Reason for the patient's visit or appointment."},"visit_reason_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason Code","description":"Reason for the patient's visit reason."},"visit_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Status","description":"Current status of the visit, such as 'PEN', 'CANC', 'N/S', 'R/S'.","default":"PEN"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Additional notes or metadata associated with the appointment."},"distance_in_miles":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Distance In Miles","description":"Distance in miles from patient's address to the appointment location."},"patient_details":{"anyOf":[{"$ref":"#/components/schemas/PatientDetails"},{"type":"null"}],"description":"Lightweight patient details required by the appointment creation flow."},"payment_method":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPaymentMethod"},{"type":"null"}],"description":"Preferred payment method for the patient."},"appointment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Type","description":"Appointment type filter used for EHR."},"appointment_type_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Type Code","description":"EHR-specific code for the appointment (e.g., '422')."},"skip_appointment_type":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Skip Appointment Type","description":"When true, omit the appointment-type filter when checking slot availability.","default":false}},"type":"object","required":["start_time","location_id","practitioner_id"],"title":"AppointmentVars","description":"Request payload describing the appointment to be created for a patient."},"AppointmentsStatsResponse":{"properties":{"overview":{"$ref":"#/components/schemas/StatsOverview","title":"Appointments Overview","description":"Overview of total appointments in the date range"},"trends":{"items":{"$ref":"#/components/schemas/StatsTrend"},"type":"array","title":"Appointments Trends","description":"List of appointment trends broken down by date, showing successful and failed counts"},"source":{"items":{"$ref":"#/components/schemas/StatsSource"},"type":"array","title":"Appointments Sources","description":"List of appointment sources with counts, showing where appointments originated"},"utm_source":{"items":{"$ref":"#/components/schemas/StatsSource"},"type":"array","title":"UTM Source","description":"Unique UTM source values with counts. Defaults to 'direct' when not set."},"utm_medium":{"items":{"$ref":"#/components/schemas/StatsSource"},"type":"array","title":"UTM Medium","description":"Unique UTM medium values with counts. Defaults to 'not set' when not set."},"utm_campaign":{"items":{"$ref":"#/components/schemas/StatsSource"},"type":"array","title":"UTM Campaign","description":"Unique UTM campaign values with counts. Defaults to 'not set' when not set."}},"type":"object","required":["overview"],"title":"AppointmentsStatsResponse","description":"Response model for appointments dashboard data.\nContains overview, trends, and source information for appointments."},"AssistantIntegrationUseCaseResponse":{"properties":{"integrationId":{"type":"string","title":"Integrationid","description":"Integration ID"},"integrationName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integrationname","description":"Integration name"},"useCases":{"items":{"$ref":"#/components/schemas/IntegrationsUseCasesModel"},"type":"array","title":"Usecases","description":"List of use-cases for this assistant in the integration"}},"type":"object","required":["integrationId"],"title":"AssistantIntegrationUseCaseResponse","description":"Response model for integrations and their use-cases for a given assistant.\nContains integration ID, name, and a list of associated use-cases."},"AssistantIntegrationsResponse":{"properties":{"integrations":{"items":{"$ref":"#/components/schemas/AssistantIntegrationUseCaseResponse"},"type":"array","title":"Integrations","description":"List of integrations with use-cases for the assistant"}},"type":"object","title":"AssistantIntegrationsResponse","description":"Response model for a list of integrations with their use-cases for a given assistant.\nContains a list of AssistantIntegrationUseCaseResponse objects."},"AthenaResourcesAppointmentTypeConfig-Input":{"properties":{"type":{"type":"string","const":"appointment_types","title":"Type of Resource Record","description":"Type of the resource record. Must be 'appointment_types'","default":"appointment_types","input_field_not_visible":true},"appointmentType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Type","description":"Type of appointment for the record"},"appointmentCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Code","description":"Code of the appointment type in EHR system"},"appointmentDuration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Appointment Duration (minutes)","description":"Duration of the appointment in minutes"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the appointment type"},"allowedUseCases":{"items":{"$ref":"#/components/schemas/IntegrationUseCaseType"},"type":"array","title":"Allowed Use Cases","description":"Optional list of allowed use-case (from enum). None indicates, Appointment Type is allowed is in all use-case."},"workingHours":{"anyOf":[{"$ref":"#/components/schemas/IntegrationWorkingHours"},{"type":"null"}],"title":"Working Hours","description":"Optional day-wise working hours configuration. Keys are mon..sun and values are windows with 'start'/'end' in HH:MM (24h) format. Example: mon=[{start:'08:15',end:'11:00'},{start:'13:15',end:'16:00'}]."},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the appointment type record in Athena system"},"isNewPatientAppointmentType":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is New Patient Appointment Type","description":"Indicates if the appointment type is for new patients","default":false},"isExistingPatientAppointmentType":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Existing Patient Appointment Type","description":"Indicates if the appointment type is for existing patients","default":false},"freeSlotCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Free Slot Appointment Code","description":"Optional appointment code of another appointment type in this integration used to fetch open slots. When set, slot availability is queried using this code while booking still uses appointmentCode. Use when all slots are managed under a single generic type (e.g. 'Any 15') but bookings require a specific type code."}},"type":"object","title":"Appointment Type","description":"Configuration for Athena Appointment Type resource records."},"AthenaResourcesAppointmentTypeConfig-Output":{"properties":{"type":{"type":"string","const":"appointment_types","title":"Type of Resource Record","description":"Type of the resource record. Must be 'appointment_types'","default":"appointment_types","input_field_not_visible":true},"appointmentType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Type","description":"Type of appointment for the record"},"appointmentCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Code","description":"Code of the appointment type in EHR system"},"appointmentDuration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Appointment Duration (minutes)","description":"Duration of the appointment in minutes"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the appointment type"},"allowedUseCases":{"items":{"$ref":"#/components/schemas/IntegrationUseCaseType"},"type":"array","title":"Allowed Use Cases","description":"Optional list of allowed use-case (from enum). None indicates, Appointment Type is allowed is in all use-case."},"workingHours":{"anyOf":[{"$ref":"#/components/schemas/IntegrationWorkingHours"},{"type":"null"}],"title":"Working Hours","description":"Optional day-wise working hours configuration. Keys are mon..sun and values are windows with 'start'/'end' in HH:MM (24h) format. Example: mon=[{start:'08:15',end:'11:00'},{start:'13:15',end:'16:00'}]."},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the appointment type record in Athena system"},"isNewPatientAppointmentType":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is New Patient Appointment Type","description":"Indicates if the appointment type is for new patients","default":false},"isExistingPatientAppointmentType":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Existing Patient Appointment Type","description":"Indicates if the appointment type is for existing patients","default":false},"freeSlotCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Free Slot Appointment Code","description":"Optional appointment code of another appointment type in this integration used to fetch open slots. When set, slot availability is queried using this code while booking still uses appointmentCode. Use when all slots are managed under a single generic type (e.g. 'Any 15') but bookings require a specific type code."}},"type":"object","title":"Appointment Type","description":"Configuration for Athena Appointment Type resource records."},"AthenaResourcesAppointmentsConfig-Input":{"properties":{"type":{"type":"string","const":"appointments","title":"Type of Resource Record","description":"Type of the resource record. Must be 'appointments'","default":"appointments","input_field_not_visible":true},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"appointmentSyncId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Sync ID","description":"Identifier for the sync request associated with the appointment data"},"appointmentStatus":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentStatus"},{"type":"null"}],"title":"Appointment Status","description":"Status of the appointment in Athena system"},"visitStatus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Status","description":"Status of the visit associated with the appointment in Athena system","default":"PEN"},"appointmentId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment ID","description":"Unique identifier for the appointment in Athena system"},"patientId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient ID","description":"Identifier for the patient associated with the appointment"},"patientMrnId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient MRN ID","description":"Medical Record Number (MRN) identifier for the patient in Athena system"},"patientFirstName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","description":"First name of the patient"},"patientLastName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","description":"Last name of the patient"},"patientPhoneNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number","description":"Contact phone number of the patient"},"patientEmail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Address","description":"Contact email address of the patient"},"startTime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Date Time","description":"Date and time of the appointment","input_field_type":"datetime_iso8601"},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration (minutes)","description":"Duration of the appointment in minutes"},"locationId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location ID","description":"Identifier for the location where the appointment is scheduled"},"practitionerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner ID","description":"Identifier for the practitioner associated with the appointment"},"visitReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason","description":"Reason for the patient's visit"},"slotId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slot ID","description":"Identifier for the time slot of the appointment"},"appointmentType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Type","description":"Legacy single appointment type value for the appointment. TODO: deprecate in favor of appointmentTypes."},"appointmentTypes":{"items":{"type":"string"},"type":"array","title":"Appointment Types","description":"Normalized appointment type values for the appointment. Prefer this field over the legacy appointmentType field."},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Additional notes or metadata associated with the appointment"},"distanceMiles":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Distance (miles)","description":"Distance in miles related to the appointment"},"paymentMethod":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPaymentMethod"},{"type":"null"}],"title":"Payment Method","description":"Preferred payment method for the appointment"},"insuranceHandlingStrategy":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceHandlingStrategy"},{"type":"null"}],"title":"Insurance Handling Strategy","description":"Strategy for handling insurance information during appointment scheduling and reminders"},"payerName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payer Name","description":"Name of the insurance payer associated with the appointment"},"appointmentCreatedSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentCreatedSource"},{"type":"null"}],"title":"Appointment Created Source","description":"Source from which the appointment was created"},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the patient record"},"visitDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationVisitDetails-Input"},{"type":"null"}],"title":"Visit Details","description":"High-level details for the visit."},"insuranceCoverageId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Coverage Logical ID","description":"Unique identifier for the insurance coverage"},"patientFlowMismatch":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Patient Flow Mismatch","description":"Indicates whether there is a mismatch in the expected patient flow (e.g., new vs existing patient) for the appointment.","default":false},"lastSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Synced At","description":"Timestamp of the last successful sync for the appointment data","input_field_type":"datetime_iso8601"},"reminderDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentReminder"},{"type":"null"}],"title":"Appointment Reminder Details","description":"Details about the appointment reminder delivery and patient response."},"reminderHistory":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentReminder"},"type":"array","title":"Reminder History","description":"History of reminders sent for the appointment along with their delivery and response details."},"finalReminderDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentReminder"},{"type":"null"}],"title":"Final Reminder Details","description":"Details about the final reminder sent for the appointment, if applicable."},"insuranceRemindersHistory":{"items":{"$ref":"#/components/schemas/IntegrationInsuranceReminder-Input"},"type":"array","title":"Insurance Reminder History","description":"History of insurance reminders sent for the appointment along with their delivery and response details."},"insuranceResults":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceResults"},{"type":"null"}],"title":"Insurance Results","description":"Results related to insurance card upload, OCR extraction, and Stedi verification for the appointment."},"trackingDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationTrackingDetails"},{"type":"null"}],"title":"Tracking Details","description":"Internal tracking details for the web session."}},"type":"object","title":"Appointments","description":"Configuration for Athena Appointments resource records."},"AthenaResourcesAppointmentsConfig-Output":{"properties":{"type":{"type":"string","const":"appointments","title":"Type of Resource Record","description":"Type of the resource record. Must be 'appointments'","default":"appointments","input_field_not_visible":true},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"appointmentSyncId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Sync ID","description":"Identifier for the sync request associated with the appointment data"},"appointmentStatus":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentStatus"},{"type":"null"}],"title":"Appointment Status","description":"Status of the appointment in Athena system"},"visitStatus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Status","description":"Status of the visit associated with the appointment in Athena system","default":"PEN"},"appointmentId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment ID","description":"Unique identifier for the appointment in Athena system"},"patientId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient ID","description":"Identifier for the patient associated with the appointment"},"patientMrnId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient MRN ID","description":"Medical Record Number (MRN) identifier for the patient in Athena system"},"patientFirstName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","description":"First name of the patient"},"patientLastName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","description":"Last name of the patient"},"patientPhoneNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number","description":"Contact phone number of the patient"},"patientEmail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Address","description":"Contact email address of the patient"},"startTime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Date Time","description":"Date and time of the appointment","input_field_type":"datetime_iso8601"},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration (minutes)","description":"Duration of the appointment in minutes"},"locationId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location ID","description":"Identifier for the location where the appointment is scheduled"},"practitionerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner ID","description":"Identifier for the practitioner associated with the appointment"},"visitReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason","description":"Reason for the patient's visit"},"slotId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slot ID","description":"Identifier for the time slot of the appointment"},"appointmentType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Type","description":"Legacy single appointment type value for the appointment. TODO: deprecate in favor of appointmentTypes."},"appointmentTypes":{"items":{"type":"string"},"type":"array","title":"Appointment Types","description":"Normalized appointment type values for the appointment. Prefer this field over the legacy appointmentType field."},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Additional notes or metadata associated with the appointment"},"distanceMiles":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Distance (miles)","description":"Distance in miles related to the appointment"},"paymentMethod":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPaymentMethod"},{"type":"null"}],"title":"Payment Method","description":"Preferred payment method for the appointment"},"insuranceHandlingStrategy":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceHandlingStrategy"},{"type":"null"}],"title":"Insurance Handling Strategy","description":"Strategy for handling insurance information during appointment scheduling and reminders"},"payerName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payer Name","description":"Name of the insurance payer associated with the appointment"},"appointmentCreatedSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentCreatedSource"},{"type":"null"}],"title":"Appointment Created Source","description":"Source from which the appointment was created"},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the patient record"},"visitDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationVisitDetails-Output"},{"type":"null"}],"title":"Visit Details","description":"High-level details for the visit."},"insuranceCoverageId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Coverage Logical ID","description":"Unique identifier for the insurance coverage"},"patientFlowMismatch":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Patient Flow Mismatch","description":"Indicates whether there is a mismatch in the expected patient flow (e.g., new vs existing patient) for the appointment.","default":false},"lastSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Synced At","description":"Timestamp of the last successful sync for the appointment data","input_field_type":"datetime_iso8601"},"reminderDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentReminder"},{"type":"null"}],"title":"Appointment Reminder Details","description":"Details about the appointment reminder delivery and patient response."},"reminderHistory":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentReminder"},"type":"array","title":"Reminder History","description":"History of reminders sent for the appointment along with their delivery and response details."},"finalReminderDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentReminder"},{"type":"null"}],"title":"Final Reminder Details","description":"Details about the final reminder sent for the appointment, if applicable."},"insuranceRemindersHistory":{"items":{"$ref":"#/components/schemas/IntegrationInsuranceReminder-Output"},"type":"array","title":"Insurance Reminder History","description":"History of insurance reminders sent for the appointment along with their delivery and response details."},"insuranceResults":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceResults"},{"type":"null"}],"title":"Insurance Results","description":"Results related to insurance card upload, OCR extraction, and Stedi verification for the appointment."},"trackingDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationTrackingDetails"},{"type":"null"}],"title":"Tracking Details","description":"Internal tracking details for the web session."}},"type":"object","title":"Appointments","description":"Configuration for Athena Appointments resource records."},"AthenaResourcesInsurancePayersConfig":{"properties":{"type":{"type":"string","const":"insurance_payers","title":"Type of Resource Record","description":"Type of the resource record. Must be 'insurance_payers'","default":"insurance_payers","input_field_not_visible":true},"insuranceName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Name","description":"Name of the insurance for the record"},"insuranceCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Code","description":"Code of the insurance in EHR system"},"insurancePayorId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Payor ID","description":"ID of the insurance payor in EHR system"},"insurancePlanType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Plan Type","description":"Type of the insurance plan in EHR system"},"isSelfPay":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Self Pay","description":"Indicates if the insurance is a self-pay type","default":false},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the insurance type record in Athena system"}},"type":"object","title":"Insurance Payers","description":"Configuration for Athena Insurance Payers resource records."},"AthenaResourcesLocationsConfig-Input":{"properties":{"type":{"type":"string","const":"locations","title":"Type of Resource Record","description":"Type of the resource record. Must be 'locations'","default":"locations","input_field_not_visible":true},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location ID","description":"Unique identifier for the location in Athena system"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Name","description":"Name of the location"},"address":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAddress"},{"type":"null"}],"title":"Location Address","description":"Address of the location"},"position":{"anyOf":[{"$ref":"#/components/schemas/IntegrationLocationPosition"},{"type":"null"}],"title":"Location Position","description":"Geographical position of the location"},"telecom":{"items":{"$ref":"#/components/schemas/IntegrationTelecom"},"type":"array","title":"Location Telecom","description":"Telecom information of the location"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"inactive","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the patient record in Athena system"},"workingHours":{"anyOf":[{"$ref":"#/components/schemas/IntegrationWorkingHours"},{"type":"null"}],"title":"Working Hours","description":"Day-wise working hours configuration from Monday to Sunday and values are windows with 'start'/'end' in HH:MM (24h) format. Example: Monday=[{start:'08:15',end:'11:00'},{start:'13:15',end:'16:00'}]."},"instructionsToReach":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions to Reach","description":"Instructions to reach the location. This can include details like entrance details, landmarks, parking information, or any other relevant directions.","input_field_helper_text":"Provide clear and concise instructions to help patients reach the location easily. We will use this information in appointment confirmation messages to guide patients to the location."}},"type":"object","title":"Locations","description":"Configuration for Athena Locations resource records."},"AthenaResourcesLocationsConfig-Output":{"properties":{"type":{"type":"string","const":"locations","title":"Type of Resource Record","description":"Type of the resource record. Must be 'locations'","default":"locations","input_field_not_visible":true},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location ID","description":"Unique identifier for the location in Athena system"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Name","description":"Name of the location"},"address":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAddress"},{"type":"null"}],"title":"Location Address","description":"Address of the location"},"position":{"anyOf":[{"$ref":"#/components/schemas/IntegrationLocationPosition"},{"type":"null"}],"title":"Location Position","description":"Geographical position of the location"},"telecom":{"items":{"$ref":"#/components/schemas/IntegrationTelecom"},"type":"array","title":"Location Telecom","description":"Telecom information of the location"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"inactive","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the patient record in Athena system"},"workingHours":{"anyOf":[{"$ref":"#/components/schemas/IntegrationWorkingHours"},{"type":"null"}],"title":"Working Hours","description":"Day-wise working hours configuration from Monday to Sunday and values are windows with 'start'/'end' in HH:MM (24h) format. Example: Monday=[{start:'08:15',end:'11:00'},{start:'13:15',end:'16:00'}]."},"instructionsToReach":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions to Reach","description":"Instructions to reach the location. This can include details like entrance details, landmarks, parking information, or any other relevant directions.","input_field_helper_text":"Provide clear and concise instructions to help patients reach the location easily. We will use this information in appointment confirmation messages to guide patients to the location."}},"type":"object","title":"Locations","description":"Configuration for Athena Locations resource records."},"AthenaResourcesOutreachConfig-Input":{"properties":{"type":{"type":"string","const":"outreach","title":"Type of Resource Record","description":"Type of the resource record. Must be 'outreach'","default":"outreach","input_field_not_visible":true},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"shortLinkId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Link ID","description":"Unique identifier for the outreach's short link in Athena system"},"webSessionFlowType":{"anyOf":[{"$ref":"#/components/schemas/IntegrationWebSessionFlowType"},{"type":"null"}],"title":"Web Session Flow Type","description":"Type of the web session flow.","default":"insurance_flow"},"communicationChannel":{"anyOf":[{"$ref":"#/components/schemas/IntegrationCommunicationChannel"},{"type":"null"}],"title":"Communication Channel","description":"Channel through which the outreach is communicated (e.g., email, SMS)."},"useCaseId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Use Case ID","description":"Identifier for the use case associated with the outreach","input_field_helper_text":"Select the use case for this outreach.","input_field_type":"integrations_use_cases_selection"},"locationId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Location ID","description":"Location identifier associated with the outreach.","input_field_helper_text":"Select the location for this outreach.","input_field_type":"integrations_locations_selection"},"practitionerId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Provider ID","description":"Provider identifier associated with the outreach.","input_field_helper_text":"Select the provider for this outreach.","input_field_type":"practitioners_selection"},"patientId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Patient ID","description":"Patient identifier associated with the outreach.","input_field_helper_text":"Select the patient for this outreach.","input_field_type":"integrations_patients_selection"},"appointmentId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Appointment ID","description":"Appointment identifier associated with the outreach.","input_field_helper_text":"Select the appointment for this outreach.","input_field_type":"integrations_appointments_selection"},"paymentMethod":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPaymentMethod"},{"type":"null"}],"title":"Payment Method","description":"Patient's payment method at the time outreach was sent. Only meaningful for pre-appointment outreach (no appointmentId yet) — the web session built from this outreach record falls back to this field for its own payment_method when there's no appointment record to read it from instead."},"timeoutSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Timeout Seconds","description":"Silence-timer window (seconds) configured when this pre-appointment outreach was sent — read back when the patient opens the link so the live call's silence timeout can be extended to match, via the call-control API."}},"type":"object","title":"Outreach","description":"Configuration for Athena outreach resource records."},"AthenaResourcesOutreachConfig-Output":{"properties":{"type":{"type":"string","const":"outreach","title":"Type of Resource Record","description":"Type of the resource record. Must be 'outreach'","default":"outreach","input_field_not_visible":true},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"shortLinkId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Link ID","description":"Unique identifier for the outreach's short link in Athena system"},"webSessionFlowType":{"anyOf":[{"$ref":"#/components/schemas/IntegrationWebSessionFlowType"},{"type":"null"}],"title":"Web Session Flow Type","description":"Type of the web session flow.","default":"insurance_flow"},"communicationChannel":{"anyOf":[{"$ref":"#/components/schemas/IntegrationCommunicationChannel"},{"type":"null"}],"title":"Communication Channel","description":"Channel through which the outreach is communicated (e.g., email, SMS)."},"useCaseId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Use Case ID","description":"Identifier for the use case associated with the outreach","input_field_helper_text":"Select the use case for this outreach.","input_field_type":"integrations_use_cases_selection"},"locationId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Location ID","description":"Location identifier associated with the outreach.","input_field_helper_text":"Select the location for this outreach.","input_field_type":"integrations_locations_selection"},"practitionerId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Provider ID","description":"Provider identifier associated with the outreach.","input_field_helper_text":"Select the provider for this outreach.","input_field_type":"practitioners_selection"},"patientId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Patient ID","description":"Patient identifier associated with the outreach.","input_field_helper_text":"Select the patient for this outreach.","input_field_type":"integrations_patients_selection"},"appointmentId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Appointment ID","description":"Appointment identifier associated with the outreach.","input_field_helper_text":"Select the appointment for this outreach.","input_field_type":"integrations_appointments_selection"},"paymentMethod":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPaymentMethod"},{"type":"null"}],"title":"Payment Method","description":"Patient's payment method at the time outreach was sent. Only meaningful for pre-appointment outreach (no appointmentId yet) — the web session built from this outreach record falls back to this field for its own payment_method when there's no appointment record to read it from instead."},"timeoutSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Timeout Seconds","description":"Silence-timer window (seconds) configured when this pre-appointment outreach was sent — read back when the patient opens the link so the live call's silence timeout can be extended to match, via the call-control API."}},"type":"object","title":"Outreach","description":"Configuration for Athena outreach resource records."},"AthenaResourcesPatientsConfig-Input":{"properties":{"type":{"type":"string","const":"patients","title":"Type of Resource Record","description":"Type of the resource record. Must be 'patients'","default":"patients","input_field_not_visible":true},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"patientSyncId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Sync ID","description":"Identifier for the sync request associated with the patient data"},"outreach_conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outreach Conversation ID","description":"Identifier of the conversation that triggered pre-appointment insurance outreach, so finalize_outreach_insurance_util can notify the right live call once the web-link flow completes. Set only by the pre-insurance-outreach tool API — not on patient creation, search, or any other path."},"patientStatus":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPatientStatus"},{"type":"null"}],"title":"Patient Status","description":"Status of the patient in Athena system"},"is_created_in_ehr":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Created In EHR","description":"Whether this patient has an actual record in the EHR. False for placeholder patient records created ahead of EHR creation (e.g. pre-appointment insurance outreach sent before the patient exists in the EHR) — flipped to True once the patient is created.","default":true},"patientId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient ID","description":"Unique identifier for the patient in Athena system"},"patientMrnId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient MRN ID","description":"Medical Record Number (MRN) identifier for the patient in Athena system"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","description":"First name of the patient"},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","description":"Last name of the patient"},"birthDate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date","description":"Birth date of the patient in YYYY-MM-DD format"},"gender":{"anyOf":[{"$ref":"#/components/schemas/IntegrationGender"},{"type":"null"}],"title":"Gender","description":"Gender of the patient"},"phoneNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number","description":"Contact phone number of the patient"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Address","description":"Contact email address of the patient"},"pcp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Care Provider ID","description":"Identifier for the patient's primary care provider"},"rp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referral Provider ID","description":"Identifier for the patient's referral provider"},"notificationPreferences":{"anyOf":[{"$ref":"#/components/schemas/PatientNotificationPreferences"},{"type":"null"}],"title":"Notification Preferences","description":"Patient's communication preferences for notifications."},"patientCreatedSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPatientCreatedSource"},{"type":"null"}],"title":"Patient Created Source","description":"Source from which the patient was created in Athena system"},"address":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAddress"},{"type":"null"}],"title":"Address","description":"Address information for the patient."},"race":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Race","description":"Race of the patient"},"ethnicity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ethnicity","description":"Ethnicity of the patient"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","description":"Preferred language of the patient"},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the patient record in Athena system"},"trackingDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationTrackingDetails"},{"type":"null"}],"title":"Tracking Details","description":"Internal tracking details for the web session."},"consentDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationConsentDetails"},{"type":"null"}],"title":"Consent Details","description":"Consent information for the web session."},"insuranceCoverages":{"items":{"$ref":"#/components/schemas/IntegrationInsuranceCoverage-Input"},"type":"array","title":"Insurance Coverages","description":"List of insurance coverages associated with the patient"},"insuranceResults":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceResults"},{"type":"null"}],"title":"Insurance Results","description":"Results of the most recent pre-appointment insurance outreach for this patient."},"lastSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Synced At","description":"Timestamp of the last successful sync for the appointment data","input_field_type":"datetime_iso8601"}},"type":"object","title":"Patients","description":"Configuration for Athena Patients resource records."},"AthenaResourcesPatientsConfig-Output":{"properties":{"type":{"type":"string","const":"patients","title":"Type of Resource Record","description":"Type of the resource record. Must be 'patients'","default":"patients","input_field_not_visible":true},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"patientSyncId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Sync ID","description":"Identifier for the sync request associated with the patient data"},"outreach_conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outreach Conversation ID","description":"Identifier of the conversation that triggered pre-appointment insurance outreach, so finalize_outreach_insurance_util can notify the right live call once the web-link flow completes. Set only by the pre-insurance-outreach tool API — not on patient creation, search, or any other path."},"patientStatus":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPatientStatus"},{"type":"null"}],"title":"Patient Status","description":"Status of the patient in Athena system"},"is_created_in_ehr":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Created In EHR","description":"Whether this patient has an actual record in the EHR. False for placeholder patient records created ahead of EHR creation (e.g. pre-appointment insurance outreach sent before the patient exists in the EHR) — flipped to True once the patient is created.","default":true},"patientId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient ID","description":"Unique identifier for the patient in Athena system"},"patientMrnId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient MRN ID","description":"Medical Record Number (MRN) identifier for the patient in Athena system"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","description":"First name of the patient"},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","description":"Last name of the patient"},"birthDate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date","description":"Birth date of the patient in YYYY-MM-DD format"},"gender":{"anyOf":[{"$ref":"#/components/schemas/IntegrationGender"},{"type":"null"}],"title":"Gender","description":"Gender of the patient"},"phoneNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number","description":"Contact phone number of the patient"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Address","description":"Contact email address of the patient"},"pcp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Care Provider ID","description":"Identifier for the patient's primary care provider"},"rp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referral Provider ID","description":"Identifier for the patient's referral provider"},"notificationPreferences":{"anyOf":[{"$ref":"#/components/schemas/PatientNotificationPreferences"},{"type":"null"}],"title":"Notification Preferences","description":"Patient's communication preferences for notifications."},"patientCreatedSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPatientCreatedSource"},{"type":"null"}],"title":"Patient Created Source","description":"Source from which the patient was created in Athena system"},"address":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAddress"},{"type":"null"}],"title":"Address","description":"Address information for the patient."},"race":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Race","description":"Race of the patient"},"ethnicity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ethnicity","description":"Ethnicity of the patient"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","description":"Preferred language of the patient"},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the patient record in Athena system"},"trackingDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationTrackingDetails"},{"type":"null"}],"title":"Tracking Details","description":"Internal tracking details for the web session."},"consentDetails":{"anyOf":[{"$ref":"#/components/schemas/IntegrationConsentDetails"},{"type":"null"}],"title":"Consent Details","description":"Consent information for the web session."},"insuranceCoverages":{"items":{"$ref":"#/components/schemas/IntegrationInsuranceCoverage-Output"},"type":"array","title":"Insurance Coverages","description":"List of insurance coverages associated with the patient"},"insuranceResults":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceResults"},{"type":"null"}],"title":"Insurance Results","description":"Results of the most recent pre-appointment insurance outreach for this patient."},"lastSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Synced At","description":"Timestamp of the last successful sync for the appointment data","input_field_type":"datetime_iso8601"}},"type":"object","title":"Patients","description":"Configuration for Athena Patients resource records."},"AthenaResourcesPractitionersConfig-Input":{"properties":{"type":{"type":"string","const":"practitioners","title":"Type of Resource Record","description":"Type of the resource record. Must be 'practitioners'","default":"practitioners","input_field_not_visible":true},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization ID","description":"Unique identifier for the organization in Athena system"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner ID","description":"Unique identifier for the practitioner in Athena system"},"npi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"National Provider Identifier","description":"NPI of the practitioner (FHIR identifier with system http://hl7.org/fhir/sid/us-npi)"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Name","description":"Full name of the practitioner"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Gender","description":"Gender of the practitioner"},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Avatar","description":"URL to the practitioner's avatar image"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Summary","description":"Short summary or bio for the practitioner","input_field_helper_text":"Supports Markdown syntax for formatted bios.","input_field_type":"textarea"},"qualification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Qualification","description":"Qualifications of the practitioner. Ex: MD, PhD etc."},"education":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Education","description":"Educational background of the practitioner","input_field_helper_text":"Supports Markdown syntax for richer descriptions.","input_field_type":"textarea"},"supervisorId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Practitioner Supervisor","description":"Practitioner's supervisor like Supervising Physician","input_field_helper_text":"Select the supervisor for this practitioner.","input_field_type":"practitioners_selection"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"languages":{"items":{"type":"string"},"type":"array","title":"Practitioner Languages","description":"List of languages spoken by the practitioner","input_field_helper_text":"Add languages spoken by the practitioner."},"specialties":{"items":{"$ref":"#/components/schemas/IntegrationPractitionerSpecialty"},"type":"array","title":"Practitioner Specialty","description":"Specialty details of the practitioner"},"locations":{"items":{"$ref":"#/components/schemas/IntegrationLocations"},"type":"array","title":"Practitioner Locations","description":"List of locations associated with the practitioner"},"workingHours":{"anyOf":[{"$ref":"#/components/schemas/IntegrationWorkingHours"},{"type":"null"}],"title":"Working Hours","description":"Optional day-wise working hours configuration. Keys are mon..sun and values are windows with 'start'/'end' in HH:MM (24h) format. Example: mon=[{start:'08:15',end:'11:00'},{start:'13:15',end:'16:00'}]."},"preferred_visiting_reasons":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Preferred Visiting Reasons","description":"List of preferred visiting reasons for the practitioner. Leave empty to allow all reasons.","input_field_helper_text":"Select one or more reasons for the practitioner's preferred visits.","input_field_type":"visiting_reasons_selection"},"minAgeTreated":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minimum Age Treated","description":"Minimum patient age (in years) this practitioner will treat. Ex: 18 for adults-only, 14 to allow younger patients.","default":5},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the patient record in Athena system"}},"type":"object","title":"Practitioners","description":"Configuration for Athena Practitioners resource records."},"AthenaResourcesPractitionersConfig-Output":{"properties":{"type":{"type":"string","const":"practitioners","title":"Type of Resource Record","description":"Type of the resource record. Must be 'practitioners'","default":"practitioners","input_field_not_visible":true},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization ID","description":"Unique identifier for the organization in Athena system"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner ID","description":"Unique identifier for the practitioner in Athena system"},"npi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"National Provider Identifier","description":"NPI of the practitioner (FHIR identifier with system http://hl7.org/fhir/sid/us-npi)"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Name","description":"Full name of the practitioner"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Gender","description":"Gender of the practitioner"},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Avatar","description":"URL to the practitioner's avatar image"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Summary","description":"Short summary or bio for the practitioner","input_field_helper_text":"Supports Markdown syntax for formatted bios.","input_field_type":"textarea"},"qualification":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Qualification","description":"Qualifications of the practitioner. Ex: MD, PhD etc."},"education":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Education","description":"Educational background of the practitioner","input_field_helper_text":"Supports Markdown syntax for richer descriptions.","input_field_type":"textarea"},"supervisorId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Practitioner Supervisor","description":"Practitioner's supervisor like Supervising Physician","input_field_helper_text":"Select the supervisor for this practitioner.","input_field_type":"practitioners_selection"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"languages":{"items":{"type":"string"},"type":"array","title":"Practitioner Languages","description":"List of languages spoken by the practitioner","input_field_helper_text":"Add languages spoken by the practitioner."},"specialties":{"items":{"$ref":"#/components/schemas/IntegrationPractitionerSpecialty"},"type":"array","title":"Practitioner Specialty","description":"Specialty details of the practitioner"},"locations":{"items":{"$ref":"#/components/schemas/IntegrationLocations"},"type":"array","title":"Practitioner Locations","description":"List of locations associated with the practitioner"},"workingHours":{"anyOf":[{"$ref":"#/components/schemas/IntegrationWorkingHours"},{"type":"null"}],"title":"Working Hours","description":"Optional day-wise working hours configuration. Keys are mon..sun and values are windows with 'start'/'end' in HH:MM (24h) format. Example: mon=[{start:'08:15',end:'11:00'},{start:'13:15',end:'16:00'}]."},"preferred_visiting_reasons":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Preferred Visiting Reasons","description":"List of preferred visiting reasons for the practitioner. Leave empty to allow all reasons.","input_field_helper_text":"Select one or more reasons for the practitioner's preferred visits.","input_field_type":"visiting_reasons_selection"},"minAgeTreated":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minimum Age Treated","description":"Minimum patient age (in years) this practitioner will treat. Ex: 18 for adults-only, 14 to allow younger patients.","default":5},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the patient record in Athena system"}},"type":"object","title":"Practitioners","description":"Configuration for Athena Practitioners resource records."},"AthenaResourcesVisitStatusConfig":{"properties":{"type":{"type":"string","const":"visit_statuses","title":"Type of Resource Record","description":"Type of the resource record. Must be 'visit_statuses'","default":"visit_statuses","input_field_not_visible":true},"visitStatus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name","description":"Visit Status Display Name in EHR System"},"visitStatusCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Status Code","description":"Code of the Visit Status in EHR system"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the Visit Status"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the Visit Status record in Athena system"}},"type":"object","title":"Visit Status","description":"Configuration for Athena Appointment Type resource records."},"AthenaResourcesVisitingReasonsConfig":{"properties":{"type":{"type":"string","const":"visiting_reasons","title":"Type of Resource Record","description":"Type of the resource record. Must be 'visiting_reasons'","default":"visiting_reasons","input_field_not_visible":true},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visiting Reason","description":"Name of the visiting reason"},"reasonCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visiting Reason Code","description":"Visiting Reason Code associated with the visiting reason"},"applicableUseCase":{"anyOf":[{"$ref":"#/components/schemas/IntegrationVisitReasonApplicableUseCaseType"},{"type":"null"}],"title":"Applicable Use Case","description":"Visit reason applicable for Appointment scheduling or Cancellation/Reschedule."},"isDefault":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default Cancel Or Schedule Reason","description":"Indicates if this is a default Cancel Or Schedule Reason that should be offered when no other reason is selected.\n        Note: Only considered for Appointment Cancellation/Reschedule in case reason code is not provided."},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of the patient record in Athena system"}},"type":"object","title":"Visiting Reasons","description":"Configuration for Athena Visiting Reasons resource records."},"BulkIntegrationsResourceRecordsCreateResult":{"properties":{"status":{"type":"string","title":"Status","description":"Status of the operation: 'created' or 'failed'."},"record":{"anyOf":[{"$ref":"#/components/schemas/IntegrationsResourceRecordsModel"},{"type":"null"}],"description":"Created resource record if successful."},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if creation failed."}},"type":"object","required":["status"],"title":"BulkIntegrationsResourceRecordsCreateResult"},"BulkIntegrationsResourceRecordsListResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/BulkIntegrationsResourceRecordsCreateResult"},"type":"array","title":"Results","description":"Ordered list of creation results (created or failed) for each input record."},"total_created":{"type":"integer","title":"Total Created","description":"Total number of records successfully created."},"total_errors":{"type":"integer","title":"Total Errors","description":"Total number of records that failed to create."}},"type":"object","required":["total_created","total_errors"],"title":"BulkIntegrationsResourceRecordsListResponse","description":"Ordered response for bulk creation of resource records.\nEach entry corresponds to the input order, with status, created record, or error."},"DayMode":{"type":"string","enum":["day_before","day_after","weekday_before","weekday_after"],"title":"DayMode"},"DaysTriggerRule":{"properties":{"startDateTime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date","description":"Start date for the schedule in ISO 8601 format. If not provided, the schedule starts immediately.","input_field_helper_text":"Enter the start date and time for the schedule in ISO 8601 format. For example, '2023-10-01T12:00:00Z' for October 1, 2023, at 12:00 PM UTC.","input_field_type":"datetime_iso8601"},"endDateTime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date","description":"End date for the schedule in ISO 8601 format. If not provided, the schedule runs indefinitely until manually stopped.","input_field_helper_text":"Enter the end date and time for the schedule in ISO 8601 format. For example, '2023-10-01T12:00:00Z' for October 1, 2023, at 12:00 PM UTC.","input_field_type":"datetime_iso8601"},"field":{"type":"string","const":"days","title":"Field","description":"Field indicating the type of trigger","default":"days","input_field_not_visible":true},"daysInterval":{"type":"integer","minimum":1,"title":"Days trigger interval","description":"Interval in days. Must be 1 or greater.","default":1,"input_field_helper_text":"Enter the number of days between each trigger. For example, if you enter 1 here, the trigger will run every day."},"triggerAtHour":{"type":"integer","maximum":23,"minimum":0,"title":"Trigger at Hour","description":"Hour of the day to trigger the event (0-23).","default":0,"input_field_helper_text":"Enter the hour when the trigger should run. For example, if you enter 14 here, the trigger will run at 2 PM."},"triggerAtMinute":{"type":"integer","maximum":59,"minimum":0,"title":"Trigger at Minute","description":"Minute of the hour to trigger the event (0-59).","default":0,"input_field_helper_text":"Enter the hour and minute when the trigger should run. For example, if you enter 14 for hour and 30 for minute, the trigger will run at 2:30 PM."}},"type":"object","title":"Days Interval Trigger"},"Demographics":{"properties":{"race":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Race","description":"Race of the patient. Left unset (not defaulted) when the caller never provided it, so the EHR extension is omitted rather than written as a value nobody actually gave."},"ethnicity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ethnicity","description":"Ethnicity of the patient. Left unset (not defaulted) when the caller never provided it, so the EHR extension is omitted rather than written as a value nobody actually gave."},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","description":"Primary language of the patient for communication.","default":"Declined to Specify"}},"type":"object","title":"Demographics","description":"Model representing demographic details for a patient."},"FinalAppointmentNotificationUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"final_appointment_notification","title":"Type","description":"Type of the use-case. Must be 'final_appointment_notification'","default":"final_appointment_notification","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Final notifications for scheduled patient appointments","default":"Final Patients Appointment Notification","input_field_not_visible":true},"allowedLocations":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Locations","description":"List of location ids for which the final notification should be sent.","input_field_helper_text":"Leave empty to allow all locations. Select specific locations to restrict the use-case to those locations only.","input_field_type":"integrations_locations_selection"},"allowedPractitioners":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Practitioners","description":"List of practitioner ids for which the final notification should be sent.","input_field_helper_text":"Leave empty to allow all practitioners. Select specific practitioners to restrict the use-case to those practitioners only.","input_field_type":"practitioners_selection"},"allowedVisitStatuses":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentVisitStatus"},"type":"array","title":"Allowed Visit Statuses (Legacy)","description":"(Legacy) List of visit statuses of the appointments for which the final notification should be sent.","input_field_not_visible":false},"allowedVisitStatusesIds":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Visit Status Codes","description":"List of visit status codes for which the final notification should be sent.","input_field_helper_text":"Leave empty to allow all Visit Statues. Select specific Visit Status resource records to restrict the use-case.","input_field_type":"integrations_visit_status_selection"},"allowedAppointmentTypeIds":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Appointment/Visit Types","description":"List of appointment type resource record ids for which the final notification should be sent.","input_field_helper_text":"Leave empty to allow all appointment types. Select specific appointment type resource records to restrict the use-case.","input_field_type":"integrations_appointment_types_selection"},"allowedAppointmentTypes":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentTypes"},"type":"array","title":"Allowed Appointment Types (Legacy)","description":"Deprecated legacy appointment type names kept for backwards compatibility. TODO: remove after migrating to allowedAppointmentTypeIds.","input_field_not_visible":false},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case","keep_collapsed":true}},"type":"object","title":"Final Appointment Notification Use Case Configuration"},"FinalAppointmentNotificationUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"final_appointment_notification","title":"Type","description":"Type of the use-case. Must be 'final_appointment_notification'","default":"final_appointment_notification","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Final notifications for scheduled patient appointments","default":"Final Patients Appointment Notification","input_field_not_visible":true},"allowedLocations":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Locations","description":"List of location ids for which the final notification should be sent.","input_field_helper_text":"Leave empty to allow all locations. Select specific locations to restrict the use-case to those locations only.","input_field_type":"integrations_locations_selection"},"allowedPractitioners":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Practitioners","description":"List of practitioner ids for which the final notification should be sent.","input_field_helper_text":"Leave empty to allow all practitioners. Select specific practitioners to restrict the use-case to those practitioners only.","input_field_type":"practitioners_selection"},"allowedVisitStatuses":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentVisitStatus"},"type":"array","title":"Allowed Visit Statuses (Legacy)","description":"(Legacy) List of visit statuses of the appointments for which the final notification should be sent.","input_field_not_visible":false},"allowedVisitStatusesIds":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Visit Status Codes","description":"List of visit status codes for which the final notification should be sent.","input_field_helper_text":"Leave empty to allow all Visit Statues. Select specific Visit Status resource records to restrict the use-case.","input_field_type":"integrations_visit_status_selection"},"allowedAppointmentTypeIds":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Appointment/Visit Types","description":"List of appointment type resource record ids for which the final notification should be sent.","input_field_helper_text":"Leave empty to allow all appointment types. Select specific appointment type resource records to restrict the use-case.","input_field_type":"integrations_appointment_types_selection"},"allowedAppointmentTypes":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentTypes"},"type":"array","title":"Allowed Appointment Types (Legacy)","description":"Deprecated legacy appointment type names kept for backwards compatibility. TODO: remove after migrating to allowedAppointmentTypeIds.","input_field_not_visible":false},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case","keep_collapsed":true}},"type":"object","title":"Final Appointment Notification Use Case Configuration"},"GetRecordsRequest":{"properties":{"live_sheet_link":{"type":"string","title":"Live Sheet Link"},"do_analysis":{"type":"boolean","title":"Do Analysis","default":false}},"type":"object","required":["live_sheet_link"],"title":"GetRecordsRequest"},"GetRecordsResponse":{"properties":{"isValid":{"type":"boolean","title":"Isvalid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"total_records":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Records"},"records":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Records"},"analysis":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Analysis"}},"type":"object","required":["isValid"],"title":"GetRecordsResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HistoryItem":{"properties":{"role":{"type":"string","title":"Role","default":"assistant"},"content":{"type":"string","title":"Content","default":""}},"type":"object","title":"HistoryItem"},"IResponseModel":{"properties":{"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","title":"IResponseModel"},"IdentifyPatientResponse":{"properties":{"validExistingPatient":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Validexistingpatient","description":"Indicates whether the patient is considered a valid existing patient based on upcoming and recent past appointments."},"oldPatientRecord":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Oldpatientrecord","description":"True when the patient has historical appointments but none within the last 3 years, and no upcoming appointments."},"upcomingAppointments":{"items":{"$ref":"#/components/schemas/PatientAppointment"},"type":"array","title":"Upcomingappointments","description":"Appointments with start time on or after 'now'."},"pastAppointments":{"items":{"$ref":"#/components/schemas/PatientAppointment"},"type":"array","title":"Pastappointments","description":"Appointments with start time before 'now'."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Optional message providing additional context about the patient's past appointments.","default":"N/A"}},"type":"object","title":"IdentifyPatientResponse","description":"Response schema for /identify-patient endpoint."},"InsuranceNotesRoutingStrategy":{"type":"string","enum":["billing_notes_extension_v1","appointment_description_v1"],"title":"InsuranceNotesRoutingStrategy","description":"Where the post-booking Stedi insurance-eligibility summary gets written on the\nAppointment resource."},"InsurancePayerDetails":{"properties":{"insurance_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance ID","description":"The unique identifier for the insurance payer."},"insurance_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Name","description":"The name of the insurance payer."}},"type":"object","title":"InsurancePayerDetails","description":"Details of the insurance payer from the response."},"InsuranceReminderChannelStatus":{"properties":{"channel":{"$ref":"#/components/schemas/IntegrationCommunicationChannel","title":"Channel","description":"The communication channel (e.g., SMS, email, call)."},"opted":{"type":"boolean","title":"Opted","description":"Whether this channel was opted in for the insurance reminder.","default":false},"delivery_status":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentReminderDeliveryStatus"},{"type":"null"}],"title":"Delivery Status","description":"Delivery status for this channel."},"delivery_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivery Timestamp","description":"Timestamp when the reminder was delivered via this channel.","input_field_type":"datetime_iso8601"}},"type":"object","required":["channel"],"title":"Insurance Reminder Channel Status"},"InsuranceReminderUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"insurance_reminder","title":"Type","description":"Type of the use-case. Must be 'insurance_reminder'","default":"insurance_reminder","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Reminding patients about insurance","default":"Insurance Reminder","input_field_not_visible":true},"allowedVisitStatuses":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentVisitStatus"},"type":"array","title":"Allowed Visit Statuses (Legacy)","description":"(Legacy) List of visit statuses of the appointments for which the insurance reminder use-case applies.","input_field_not_visible":false},"allowedVisitStatusesIds":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Visit Status Codes","description":"List of visit status codes for which the insurance reminder use-case applies..","input_field_helper_text":"Leave empty to allow all Visit Statuses. Select specific Visit Status resource records to restrict the insurance flow settings.","input_field_type":"integrations_visit_status_selection"},"allowedAppointmentTypeIds":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Appointment/Visit Types","description":"List of appointment type resource record ids for which the final notification should be sent.","input_field_helper_text":"Leave empty to allow all appointment types. Select specific appointment type resource records to restrict the use-case.","input_field_type":"integrations_appointment_types_selection"},"allowedAppointmentTypes":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentTypes"},"type":"array","title":"Allowed Appointment Types (Legacy)","description":"Deprecated legacy appointment type names kept for backwards compatibility. TODO: remove after migrating to allowedAppointmentTypeIds.","input_field_not_visible":false},"reminderMaxAttempts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reminder Max Attempts","description":"Maximum number of reminder attempts before giving up.","default":5,"input_field_helper_text":"The system will attempt to remind the patient about their insurance up to this number of times before ceasing further reminders."},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case","keep_collapsed":true}},"type":"object","title":"Insurance Reminder Use Case Configuration"},"InsuranceReminderUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"insurance_reminder","title":"Type","description":"Type of the use-case. Must be 'insurance_reminder'","default":"insurance_reminder","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Reminding patients about insurance","default":"Insurance Reminder","input_field_not_visible":true},"allowedVisitStatuses":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentVisitStatus"},"type":"array","title":"Allowed Visit Statuses (Legacy)","description":"(Legacy) List of visit statuses of the appointments for which the insurance reminder use-case applies.","input_field_not_visible":false},"allowedVisitStatusesIds":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Visit Status Codes","description":"List of visit status codes for which the insurance reminder use-case applies..","input_field_helper_text":"Leave empty to allow all Visit Statuses. Select specific Visit Status resource records to restrict the insurance flow settings.","input_field_type":"integrations_visit_status_selection"},"allowedAppointmentTypeIds":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Appointment/Visit Types","description":"List of appointment type resource record ids for which the final notification should be sent.","input_field_helper_text":"Leave empty to allow all appointment types. Select specific appointment type resource records to restrict the use-case.","input_field_type":"integrations_appointment_types_selection"},"allowedAppointmentTypes":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentTypes"},"type":"array","title":"Allowed Appointment Types (Legacy)","description":"Deprecated legacy appointment type names kept for backwards compatibility. TODO: remove after migrating to allowedAppointmentTypeIds.","input_field_not_visible":false},"reminderMaxAttempts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reminder Max Attempts","description":"Maximum number of reminder attempts before giving up.","default":5,"input_field_helper_text":"The system will attempt to remind the patient about their insurance up to this number of times before ceasing further reminders."},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case","keep_collapsed":true}},"type":"object","title":"Insurance Reminder Use Case Configuration"},"InsuranceStediFinalStatus":{"type":"string","enum":["active_insurance","inactive_insurance","unable_to_verify_insurance"],"title":"InsuranceStediFinalStatus","x-enumTitles":{"active_insurance":"Active Insurance","inactive_insurance":"Inactive Insurance","unable_to_verify_insurance":"Unable to Verify Insurance"}},"InsuranceVerificationResponse":{"properties":{"status":{"anyOf":[{"$ref":"#/components/schemas/InsuranceVerificationStatus"},{"type":"null"}],"title":"Verification Status","description":"The status of the insurance verification attempt."},"statusReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Reason","description":"Reason for the current status of the insurance verification."},"fullResponse":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Full Response","description":"Complete response data from the insurance verification API."},"miniResponse":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mini Response","description":"A summarized version of the full response."},"summaryNotes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary Notes","description":"Additional notes summarizing the verification response.","default":""},"insuranceNameMatch":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Insurance Name Match","description":"Indicates if the insurance name matches the expected payer.","default":false},"insurancePayerDetails":{"anyOf":[{"$ref":"#/components/schemas/InsurancePayerDetails"},{"type":"null"}],"title":"Insurance Payer Details","description":"The details of the insurance payer from the response. has id + matching name from the available insurances list"},"insuranceNameNotFoundInEHR":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Insurance Name Not Found In EHR","description":"Indicates if the insurance name from the verification response was not found in the EHR system.","default":false},"stediRequests":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Stedi Requests","description":"List of all HTTP request bodies sent to the Stedi eligibility API during verification."}},"type":"object","title":"InsuranceVerificationResponse","description":"Standardized response model for insurance verification API.\n\nThis model ensures all responses follow a consistent structure,\nwith the actual outcome conveyed through the status field."},"InsuranceVerificationStatus":{"type":"string","enum":["INSURANCE_COVERAGE_VERIFICATION_SUCCESS","INSURANCE_COVERAGE_VERIFICATION_INVALID_DATA","INSURANCE_COVERAGE_VERIFICATION_INACTIVE","INSURANCE_COVERAGE_VERIFICATION_ERROR"],"title":"InsuranceVerificationStatus","description":"Status values for insurance coverage verification responses.","x-enumTitles":{"INSURANCE_COVERAGE_VERIFICATION_ERROR":"Verification Error","INSURANCE_COVERAGE_VERIFICATION_INACTIVE":"Insurance Inactive","INSURANCE_COVERAGE_VERIFICATION_INVALID_DATA":"Invalid Data Provided","INSURANCE_COVERAGE_VERIFICATION_SUCCESS":"Insurance Coverage Verified"}},"IntegrationAccess":{"type":"string","enum":["personal","team","system"],"title":"IntegrationAccess","description":"Indicates who can access this integration."},"IntegrationAddress":{"properties":{"line":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Address Lines","description":"Street address or P.O. Box"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"City of the address"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","description":"State or province of the address"},"postalCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Postal Code","description":"Postal or ZIP code of the address"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"Country of the address"},"use":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Used for","description":"Usage qualifier for the address (e.g., home, work)."},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type of Address","description":"Type qualifier for the address (e.g., postal, physical, both)."}},"type":"object","title":"Address","description":"Model representing an address associated with an integration.\nEx: {\n    \"line\": [\n        \"501 Broad Street\",\n        \"Suite 400\"\n    ],\n    \"city\": \"ROME\",\n    \"state\": \"GA\",\n    \"postalCode\": \"30161-3096\"\n}"},"IntegrationAnswers":{"type":"string","enum":["yes","no","skip","not_applicable"],"title":"Answer","description":"Defines possible answers for integration questions.","x-enumTitles":{"no":"No","not_applicable":"Not Applicable","skip":"Skip","yes":"Yes"}},"IntegrationAppointmentConfirmationByCallPayload":{"properties":{"response_outcome":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentReminderResponseOutcome"},{"type":"null"}],"title":"Appointment Reminder Response Outcome","description":"Outcome of the appointment reminder response.","default":"confirmed"},"integration_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Integration ID","description":"Identifier for the integration associated with the appointment confirmation."},"team_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Team ID","description":"Identifier for the team associated with the appointment confirmation."},"appointment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment ID","description":"Identifier for the appointment being confirmed."}},"type":"object","title":"Appointment Confirmation By Call Payload"},"IntegrationAppointmentCreatedSource":{"type":"string","enum":["web","app","call","sync"],"title":"IntegrationAppointmentCreatedSource","x-enumTitles":{"app":"App","call":"Call","sync":"Sync","web":"Web"}},"IntegrationAppointmentReminder":{"properties":{"delivery_status":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentReminderDeliveryStatus"},{"type":"null"}],"title":"Delivery Status","description":"Status of the appointment reminder delivery (e.g., pending, sent, failed).","default":"not_required"},"delivery_channels":{"items":{"$ref":"#/components/schemas/IntegrationCommunicationChannel"},"type":"array","title":"Delivery Channels","description":"Channels through which the reminder was sent (e.g., SMS, email, phone call)."},"reason_for_reminder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason for Reminder","description":"Reason for sending the appointment reminder (e.g., upcoming appointment, missed appointment)."},"delivery_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivery Timestamp","description":"Timestamp when the reminder was delivered to the patient.","input_field_type":"datetime_iso8601"},"response_channel":{"anyOf":[{"$ref":"#/components/schemas/IntegrationCommunicationChannel"},{"type":"null"}],"title":"Response Channel","description":"Channel through which the patient responded to the reminder (e.g., SMS, email, phone call)."},"response_outcome":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentReminderResponseOutcome"},{"type":"null"}],"title":"Response Outcome","description":"Outcome of the patient's response to the reminder (e.g., confirmed, rescheduled, cancelled, no response)."},"response_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Response Timestamp","description":"Timestamp when the patient responded to the reminder.","input_field_type":"datetime_iso8601"}},"type":"object","title":"Appointment Reminder"},"IntegrationAppointmentReminderDeliveryStatus":{"type":"string","enum":["not_required","queued","delivered","failed","completed","not_found_in_upstream"],"title":"Reminder Delivery Status","description":"Delivery status of reminder to patient.","x-enumTitles":{"completed":"Completed","delivered":"Delivered","failed":"Failed","not_found_in_upstream":"Not Found in Upstream","not_required":"Not Required","queued":"Queued"}},"IntegrationAppointmentReminderResponseOutcome":{"type":"string","enum":["confirmed","reschedule_requested","cancellation_requested","call_forwarded","not_sure","voicemail","unable_to_leave_voicemail","verification_failed","unknown"],"title":"Appointment Reminder Response Outcome","description":"Patient's response to the appointment reminder.","x-enumTitles":{"call_forwarded":"Call Forwarded","cancellation_requested":"Cancellation Requested","confirmed":"Confirmed","not_sure":"Not Sure","reschedule_requested":"Reschedule Requested","unable_to_leave_voicemail":"Unable to Leave Voicemail","unknown":"Unknown","verification_failed":"Verification Failed","voicemail":"Voicemail"}},"IntegrationAppointmentStatus":{"type":"string","enum":["scheduled","cancelled","rescheduled","reschedule_failed","cancel_failed","sync_created","sync_updated","sync_failed"],"title":"IntegrationAppointmentStatus","description":"Defines appointment status options for integration","x-enumTitles":{"cancelled":"Cancelled","reschedule_failed":"Reschedule Failed","rescheduled":"Rescheduled","scheduled":"Scheduled","sync_created":"Sync Created","sync_failed":"Sync Failed","sync_updated":"Sync Updated"}},"IntegrationAppointmentTypes":{"type":"string","enum":["NP","F/U","ASC_FU","FU Tele","PROCEDURE","PROV_USE","RAP_ACCESS","MEDICARE PHYSICAL","PHYSICAL EXAM","WELCOME TO MEDICARE PHYSICAL","NEW PATIENT","FOLLOW-UP","HMO FOLLOW UP","PREVENTATIVE FOLLOW-UP WELLNES","TELEHEALTH"],"title":"IntegrationAppointmentTypes","description":"Deprecated legacy appointment type enum kept only for backwards compatibility with older documents.","x-enumTitles":{"ASC_FU":"ASC F/U","F/U":"F/U","FOLLOW-UP":"Follow-Up","FU Tele":"FU Tele","HMO FOLLOW UP":"HMO Follow-Up","MEDICARE PHYSICAL":"Medicare Physical","NEW PATIENT":"New Patient","NP":"NP","PHYSICAL EXAM":"Physical Exam","PREVENTATIVE FOLLOW-UP WELLNES":"Preventative Wellness","PROCEDURE":"Procedure","PROV_USE":"Provider Use","RAP_ACCESS":"RAP Access","TELEHEALTH":"Telehealth","WELCOME TO MEDICARE PHYSICAL":"Welcome to Medicare Physical"}},"IntegrationAppointmentVisitStatus":{"type":"string","enum":["ANSPH","ARR","ARR-W","AUTH-DEN","AUTHPEN","CHK","CONF","CONFPHONE","CONFSMS","FAILEDMSG","healowARR","HLW","HOSP-CHK","InsRefPend","KAREN","NEED INS","PEN","PEN_PAY","POST-ARRIV","POST-CHK","POST-CONF","POST-PEND","POST-VERIF","Rad_CONF","Rad_VER","SUR","U_CheckOut","VER","VOICEMSG","WaitList","XXAUIG_EST","XXBOT PEN2","XXBotFail","XXBotPend","XXBotVerif","XXLegacy","ZZBotFail","ZZBotVerif","ASC-CLINIC","ASC-FIN","ASC-PROV","ASC-READY","ASC-RECOV","ASC-RET","BK-LOG-CX","BK-LOG-FU","BK-LOG-LVM","BK-LOG-R/S","BK-LOG-SCH","CANC","CANC-AUNRC","CANC-CB","CANC-CD","CANC-CNR","CANC-DEC","CANC-DNC","CANC-ERR","CANC-FIN","CANC-HLTH","CANC-INS","CANC-MOASC","CANC-MOCL","CANC-MOHOS","CANC-NORES","CANC-PENNR","CANC-PQ","CANC-PROV","CANC-PTNO","CANC-REF","CANC-SW","CANC-TRAN","CANC_CAV","CANC_CRL","CANCPHONE","CANCSC","CANCSMS","COVID 19","CX-HOSP","CX-NO-RESP","DBL","ERROR","HOSNeedsRS","HOSP-SCHED","HOSP_RETEN","IMS","Lab Done","N/S","NEED R/S","R/S","R/S ATHNRC","R/S CLEAR","R/S ERROR","R/S HEALTH","R/S PROV","R/S QUEST","R/S SCHE","R/S TRANS","R/S-CD","R/S-FIN","Resch AHS","RSPHONE","Stedi Pend","Walk-Out"],"title":"IntegrationAppointmentVisitStatus","description":"Defines appointment visit status options for integration","x-enumTitles":{"ANSPH":"ANSPH (Voice)","ARR":"ARR (Check-In)","ARR-W":"ARR-W (Arrived (Waiting for Paperwork))","ASC-CLINIC":"ASC-CLINIC (ASC-Clinical F/U Needed)","ASC-FIN":"ASC-FIN (ASC-Financial F/U Needed)","ASC-PROV":"ASC-PROV (ASC-Provider F/U Needed)","ASC-READY":"ASC-READY (ASC-Ready to R/S)","ASC-RECOV":"ASC-RECOV (ASC-Recovered)","ASC-RET":"ASC-RET (ASC-RETENTION)","AUTH-DEN":"AUTH-DEN (Ins_Auth_Denied)","AUTHPEN":"AUTHPEN (Auth Pending)","BK-LOG-CX":"BK-LOG-CX (Back Logged Canceled)","BK-LOG-FU":"BK-LOG-FU (Back Logged F/U)","BK-LOG-LVM":"BK-LOG-LVM (Back Logged Left Message)","BK-LOG-R/S":"BK-LOG-R/S (Back Logged R/S)","BK-LOG-SCH":"BK-LOG-SCH (Back Log - Scheduled)","CANC":"CANC (CX-Other)","CANC-AUNRC":"CANC-AUNRC (CX-Authorization Not Received)","CANC-CB":"CANC-CB (CX-Condition Better)","CANC-CD":"CANC-CD (CX-Clearance Denied)","CANC-CNR":"CANC-CNR (CX-Clearance Not Received)","CANC-DEC":"CANC-DEC (CX-Patient Deceased)","CANC-DNC":"CANC-DNC (CX-DNC)","CANC-ERR":"CANC-ERR (CX-Error)","CANC-FIN":"CANC-FIN (CX-Financial)","CANC-HLTH":"CANC-HLTH (CX-Health)","CANC-INS":"CANC-INS (CX-Insurance)","CANC-MOASC":"CANC-MOASC (CX-Moved to ASC)","CANC-MOCL":"CANC-MOCL (CX-Moved to Clinic)","CANC-MOHOS":"CANC-MOHOS (CX-Moved to Hospital)","CANC-NORES":"CANC-NORES (CX-No Response)","CANC-PENNR":"CANC-PENNR (CANC-PENNR)","CANC-PQ":"CANC-PQ (CX-Patient Questions/Unsur)","CANC-PROV":"CANC-PROV (CX-Provider Request)","CANC-PTNO":"CANC-PTNO (CX-Patient No Longer Wants)","CANC-REF":"CANC-REF (CX-Refused to State Reason)","CANC-SW":"CANC-SW (CX-Switching Care)","CANC-TRAN":"CANC-TRAN (CX-Transportation)","CANCPHONE":"CANCPHONE (CX-Voice)","CANCSC":"CANCSC (CX-Scheduling Conflict)","CANCSMS":"CANCSMS (CX-Voice)","CANC_CAV":"CANC_CAV (CX_Clearance Availability)","CANC_CRL":"CANC_CRL (CX_Clearance Req Late)","CHK":"CHK (Check Out)","CONF":"CONF (Confirmed)","CONFPHONE":"CONFPHONE (Voice)","CONFSMS":"CONFSMS (Voice)","COVID 19":"COVID 19 (CX-COVID)","CX-HOSP":"CX-HOSP (CanceledHosp)","CX-NO-RESP":"CX-NO-RESP (CX-No Response)","DBL":"DBL (DOUBLE APPOINTMENT)","ERROR":"ERROR (ERROR)","FAILEDMSG":"FAILEDMSG (Voice)","HLW":"HLW (Healow)","HOSNeedsRS":"HOSNeedsRS (HOSP Needs R/S)","HOSP-CHK":"HOSP-CHK (HOS-COMPLETE)","HOSP-SCHED":"HOSP-SCHED (HOSP-SCHEDULED)","HOSP_RETEN":"HOSP_RETEN (HospitalRetention)","IMS":"IMS (IMS ENCOUNTER)","InsRefPend":"InsRefPend (Ins Ref Pend)","KAREN":"KAREN (Waiting for Financial)","Lab Done":"Lab Done (LAB)","N/S":"N/S (No-Show)","NEED INS":"NEED INS (NEED INSURANCE)","NEED R/S":"NEED R/S (Needs Rescheduled)","PEN":"PEN (Pending)","PEN_PAY":"PEN_PAY (Pending Payment(OA))","POST-ARRIV":"POST-ARRIV (POST-ARRIVED)","POST-CHK":"POST-CHK (POST-CHECK OUT)","POST-CONF":"POST-CONF (POST-CONFIRMED)","POST-PEND":"POST-PEND (POST-PENDING)","POST-VERIF":"POST-VERIF (POST-VERIFY)","R/S":"R/S (R/S-Other)","R/S ATHNRC":"R/S ATHNRC (R/S-Authorization not received)","R/S CLEAR":"R/S CLEAR (R/S-Clearance not received)","R/S ERROR":"R/S ERROR (R/S-Error)","R/S HEALTH":"R/S HEALTH (R/S-Health)","R/S PROV":"R/S PROV (R/S-Provider Request)","R/S QUEST":"R/S QUEST (R/S-Pt Questions)","R/S SCHE":"R/S SCHE (R/S-Scheduling Conflict)","R/S TRANS":"R/S TRANS (R/S-Transportation)","R/S-CD":"R/S-CD (R/S-Clearance Denied)","R/S-FIN":"R/S-FIN (R/S-Financial)","RSPHONE":"RSPHONE (R/S-Voice)","Rad_CONF":"Rad_CONF (Authorization completed)","Rad_VER":"Rad_VER (Verification Complete)","Resch AHS":"Resch AHS (R/S-Rescheduled per AHS)","SUR":"SUR (Surgery)","Stedi Pend":"Stedi Pend (Stedi EBV search)","U_CheckOut":"U_CheckOut (U_Checked_Out)","VER":"VER (Verified)","VOICEMSG":"VOICEMSG (Voice)","WaitList":"WaitList (WaitList)","Walk-Out":"Walk-Out (Walk Out)","XXAUIG_EST":"XXAUIG_EST (XX AUIG East)","XXBOT PEN2":"XXBOT PEN2 (XX Bot Pending#2)","XXBotFail":"XXBotFail (XXBotFailed)","XXBotPend":"XXBotPend (XXBotPend)","XXBotVerif":"XXBotVerif (XXBotVerified)","XXLegacy":"XXLegacy (XX Legacy TIN Plan)","ZZBotFail":"ZZBotFail (ZZBotFailed)","ZZBotVerif":"ZZBotVerif (ZZBotVerified)","healowARR":"healowARR (I have Arrived)"}},"IntegrationAthenaConfig-Input":{"properties":{"baseUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Client Base Url","description":"Base URL path/domain for the Integration Client Requests.","default":""},"authKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization Key Name","description":"Key name used for authorization in API requests.","default":"Authorization"},"authAddTo":{"anyOf":[{"type":"string","enum":["headers","query"]},{"type":"null"}],"title":"Authorization Key Location","description":"Where to include the key-value pair in API requests (headers or query).","default":"headers"},"clientId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client ID","description":"OAuth2 client identifier issued by the authorization server.","default":""},"clientSecret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret","description":"Confidential client secret used together with the client ID.","input_field_type":"password"},"audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Audience","description":"OAuth2 audience / API identifier for which the access token is requested. ","default":""},"grantType":{"type":"string","const":"client_credentials","title":"Grant Type","description":"OAuth2 grant type used when requesting the access token.","default":"client_credentials"},"scopes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scopes","description":"Space-separated list of OAuth2 scopes requested for the access token.","default":"read:all write:all"},"tokenUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Client Token URL","description":"URL used to obtain the OAuth2 token for the Integration Client.","default":"","input_field_type":"external_url_link"},"provider":{"type":"string","const":"athena","title":"Provider","description":"Integration provider identifier. Always 'athena'.","default":"athena","input_field_not_visible":true},"isSandbox":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Sandbox","description":"Indicates if the integration is in sandbox mode. Turn off for production use. For Sandbox mode we will sync limited data for easy testing.","default":true},"authType":{"$ref":"#/components/schemas/IntegrationAuthType","title":"Authentication Type","description":"Authentication type used for this integration (basic or oauth or oauth2).","default":"basic","input_field_not_visible":true},"sourceId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source ID","description":"Unique source identifier for Athena integration."},"connectorId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connector ID","description":"Unique connector identifier for Athena integration."},"dataSynchronizer":{"$ref":"#/components/schemas/IntegrationDataSynchronizerType","title":"Data Synchronizer","description":"Identifier for the data synchronizer associated with this Athena source.","default":"xcaliber_health"},"ehrTenantId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EHR Tenant ID","description":"EHR Tenant identifier sent as the x-tenant-id request header in API calls."},"ehrInstance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EHR Instance","description":"EHR instance identifier sent as the X-Ehr-Instance request header in API calls."},"apiKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"API Key","description":"API key for authenticating with ECW. This is required if authType is set to 'basic'."},"branding":{"anyOf":[{"$ref":"#/components/schemas/IntegrationBranding"},{"type":"null"}],"title":"Branding Assets","description":"Give your brand identity and select theme colors for a personalized experience."},"insurance":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsurance"},{"type":"null"}],"title":"Insurance Configuration","description":"Configuration details for the insurance organization associated with this integration. This includes the organization's name and NPI, which are essential for insurance verification processes."}},"type":"object","title":"Athena Integration","description":"Athena API key-based integration configuration."},"IntegrationAthenaConfig-Output":{"properties":{"baseUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Client Base Url","description":"Base URL path/domain for the Integration Client Requests.","default":""},"authKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization Key Name","description":"Key name used for authorization in API requests.","default":"Authorization"},"authAddTo":{"anyOf":[{"type":"string","enum":["headers","query"]},{"type":"null"}],"title":"Authorization Key Location","description":"Where to include the key-value pair in API requests (headers or query).","default":"headers"},"clientId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client ID","description":"OAuth2 client identifier issued by the authorization server.","default":""},"clientSecret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret","description":"Confidential client secret used together with the client ID.","input_field_type":"password"},"audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Audience","description":"OAuth2 audience / API identifier for which the access token is requested. ","default":""},"grantType":{"type":"string","const":"client_credentials","title":"Grant Type","description":"OAuth2 grant type used when requesting the access token.","default":"client_credentials"},"scopes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scopes","description":"Space-separated list of OAuth2 scopes requested for the access token.","default":"read:all write:all"},"tokenUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Client Token URL","description":"URL used to obtain the OAuth2 token for the Integration Client.","default":"","input_field_type":"external_url_link"},"provider":{"type":"string","const":"athena","title":"Provider","description":"Integration provider identifier. Always 'athena'.","default":"athena","input_field_not_visible":true},"isSandbox":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Sandbox","description":"Indicates if the integration is in sandbox mode. Turn off for production use. For Sandbox mode we will sync limited data for easy testing.","default":true},"authType":{"$ref":"#/components/schemas/IntegrationAuthType","title":"Authentication Type","description":"Authentication type used for this integration (basic or oauth or oauth2).","default":"basic","input_field_not_visible":true},"sourceId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source ID","description":"Unique source identifier for Athena integration."},"connectorId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connector ID","description":"Unique connector identifier for Athena integration."},"dataSynchronizer":{"$ref":"#/components/schemas/IntegrationDataSynchronizerType","title":"Data Synchronizer","description":"Identifier for the data synchronizer associated with this Athena source.","default":"xcaliber_health"},"ehrTenantId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EHR Tenant ID","description":"EHR Tenant identifier sent as the x-tenant-id request header in API calls."},"ehrInstance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EHR Instance","description":"EHR instance identifier sent as the X-Ehr-Instance request header in API calls."},"apiKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"API Key","description":"API key for authenticating with ECW. This is required if authType is set to 'basic'."},"branding":{"anyOf":[{"$ref":"#/components/schemas/IntegrationBranding"},{"type":"null"}],"title":"Branding Assets","description":"Give your brand identity and select theme colors for a personalized experience."},"insurance":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsurance"},{"type":"null"}],"title":"Insurance Configuration","description":"Configuration details for the insurance organization associated with this integration. This includes the organization's name and NPI, which are essential for insurance verification processes."}},"type":"object","title":"Athena Integration","description":"Athena API key-based integration configuration."},"IntegrationAuthType":{"type":"string","enum":["basic","oauth","oauth2"],"title":"IntegrationAuthType","description":"Defines the authentication type used for the integration."},"IntegrationBranding":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Name","description":"Name of the integration as it should appear in the UI."},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo URL","description":"URL to the logo image of the integration. You can provide any static image URL.","input_field_type":"external_url_link"},"iconUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon URL","description":"URL to the favicon representing the integration. You can provide any static image URL.","input_field_type":"external_url_link"},"primaryColor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Color","description":"Hex code or color name representing the primary brand color of the integration.","input_field_type":"color_section"},"supportNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Support Contact Number","description":"Contact phone number for support related to the integration."},"supportEmail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Support Contact Email","description":"Contact email address for support related to the integration."},"receiverEmails":{"items":{"type":"string"},"type":"array","title":"Receiver Emails","description":"List of email addresses that should receive notifications related to the integration."},"subDomain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Interactly's Sub Domain","description":"Sub Domain for this integration, ex: ehr-client. So we create https://ehr-client.interactly.ai Route53 CNAME record pointing to interactly.ai. It should be unique across all integrations."},"templateId":{"$ref":"#/components/schemas/IntegrationUITemplates","title":"EHR UI Template","description":"Select a template for the EHR web session UI to customize the look and feel.","default":"scheduling-session-v2"},"disclaimerMessage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disclaimer Message","description":"Custom disclaimer message to be displayed during the web session."},"websiteUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website URL","description":"Official website URL of the integration or organization. We will use this site for redirection links.","input_field_type":"external_url_link"},"privacyPolicyUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Privacy Policy and Terms URL","description":"Official privacy policy and terms URL of the integration or organization. We will use this site for redirection links.","input_field_type":"external_url_link"}},"type":"object","title":"Branding Assets"},"IntegrationCommunicationChannel":{"type":"string","enum":["call","sms","email"],"title":"Communication Channel","description":"Defines communication channels.","x-enumTitles":{"call":"Call","email":"Email","sms":"SMS"}},"IntegrationConsentDetails":{"properties":{"terms_accepted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Terms of Use Privacy and HIPAA Authorization Accepted","description":"Indicates whether the patient has accepted the terms and conditions for the session.","default":false},"terms_accepted_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Terms Accepted Timestamp","description":"Timestamp when the terms were accepted.","input_field_type":"datetime_iso8601"},"captcha_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Captcha Verified","description":"Indicates whether the captcha verification was successful.","default":false},"captcha_verified_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Captcha Verified Timestamp","description":"Timestamp when the captcha was verified.","input_field_type":"datetime_iso8601"},"otp_verified":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"OTP Verified","description":"Indicates whether the OTP verification was successful.","default":false},"otp_verified_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"OTP Verified Timestamp","description":"Timestamp when the OTP was verified.","input_field_type":"datetime_iso8601"},"otp_verified_for":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"OTP Verified For","description":"The contact method (email/phone) for which the OTP was verified."},"privacy_accepted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Privacy Policy Accepted","description":"Indicates whether the patient has accepted the privacy policy.","default":false},"privacy_accepted_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Privacy Accepted Timestamp","description":"Timestamp when the privacy policy was accepted.","input_field_type":"datetime_iso8601"}},"type":"object","title":"Integration Consent Details"},"IntegrationDataSynchronizerType":{"type":"string","enum":["xcaliber_health","interactly_ehr_gateway","ellkay","direct_athena"],"title":"Data Synchronizer Type","description":"Defines the type of data synchronization.","x-enumTitles":{"direct_athena":"Direct Athena","ellkay":"Ellkay","interactly_ehr_gateway":"Interactly EHR Gateway","xcaliber_health":"Xcaliber Health"}},"IntegrationDocumentsDetails":{"properties":{"insurance_card_front":{"anyOf":[{"$ref":"#/components/schemas/IntegrationFileDetails"},{"type":"null"}],"title":"Insurance Card Front","description":"Insurance Card Front image details."},"insurance_card_back":{"anyOf":[{"$ref":"#/components/schemas/IntegrationFileDetails"},{"type":"null"}],"title":"Insurance Card Back","description":"Insurance Card Back image details."},"insurance_card_combined":{"anyOf":[{"$ref":"#/components/schemas/IntegrationFileDetails"},{"type":"null"}],"title":"Combined Insurance Card","description":"Combined image of the insurance card (both front and back in one image) details."},"personal_card_front":{"anyOf":[{"$ref":"#/components/schemas/IntegrationFileDetails"},{"type":"null"}],"title":"Personal Card Front","description":"Personal Card Front image details."},"personal_card_back":{"anyOf":[{"$ref":"#/components/schemas/IntegrationFileDetails"},{"type":"null"}],"title":"Personal Card Back","description":"Personal Card Back image details."}},"type":"object","title":"Integration Documents Details"},"IntegrationECWConfig-Input":{"properties":{"baseUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Client Base Url","description":"Base URL path/domain for the Integration Client Requests.","default":""},"authKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization Key Name","description":"Key name used for authorization in API requests.","default":"Authorization"},"authAddTo":{"anyOf":[{"type":"string","enum":["headers","query"]},{"type":"null"}],"title":"Authorization Key Location","description":"Where to include the key-value pair in API requests (headers or query).","default":"headers"},"clientId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client ID","description":"OAuth2 client identifier issued by the authorization server.","default":""},"clientSecret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret","description":"Confidential client secret used together with the client ID.","input_field_type":"password"},"audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Audience","description":"OAuth2 audience / API identifier for which the access token is requested. ","default":""},"grantType":{"type":"string","const":"client_credentials","title":"Grant Type","description":"OAuth2 grant type used when requesting the access token.","default":"client_credentials"},"scopes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scopes","description":"Space-separated list of OAuth2 scopes requested for the access token.","default":"read:all write:all"},"tokenUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Client Token URL","description":"URL used to obtain the OAuth2 token for the Integration Client.","default":"","input_field_type":"external_url_link"},"provider":{"type":"string","const":"ecw","title":"Provider","description":"Integration provider identifier. Always 'ecw'.","default":"ecw","input_field_not_visible":true},"isSandbox":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Sandbox","description":"Indicates if the integration is in sandbox mode. Turn off for production use. For Sandbox mode we will sync limited data for easy testing.","default":true},"authType":{"$ref":"#/components/schemas/IntegrationAuthType","title":"Authentication Type","description":"Authentication type used for this integration (basic or oauth).","default":"basic","input_field_not_visible":true},"sourceId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source ID","description":"Unique source identifier for ECW integration."},"connectorId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connector ID","description":"Unique connector identifier for ECW integration."},"dataSynchronizer":{"$ref":"#/components/schemas/IntegrationDataSynchronizerType","title":"Data Synchronizer","description":"Identifier for the data synchronizer associated with this ECW source.","default":"xcaliber_health"},"ehrTenantId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EHR Tenant ID","description":"EHR Tenant identifier sent as the x-tenant-id request header in API calls."},"ehrInstance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EHR Instance","description":"EHR instance identifier sent as the X-Ehr-Instance request header in API calls."},"apiKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"API Key","description":"API key for authenticating with ECW. This is required if authType is set to 'basic'."},"branding":{"anyOf":[{"$ref":"#/components/schemas/IntegrationBranding"},{"type":"null"}],"title":"Branding Assets","description":"Give your brand identity and select theme colors for a personalized experience."},"insurance":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsurance"},{"type":"null"}],"title":"Insurance Configuration","description":"Configuration details for the insurance organization associated with this integration. This includes the organization's name and NPI, which are essential for insurance verification processes."},"utm":{"anyOf":[{"$ref":"#/components/schemas/IntegrationUTMDetails"},{"type":"null"}],"title":"UTM Details","description":"UTM details associated with this integration. This includes the UTM source, medium, and campaign IDs."}},"type":"object","title":"ECW Integration","description":"ECW API key-based integration configuration."},"IntegrationECWConfig-Output":{"properties":{"baseUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Client Base Url","description":"Base URL path/domain for the Integration Client Requests.","default":""},"authKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization Key Name","description":"Key name used for authorization in API requests.","default":"Authorization"},"authAddTo":{"anyOf":[{"type":"string","enum":["headers","query"]},{"type":"null"}],"title":"Authorization Key Location","description":"Where to include the key-value pair in API requests (headers or query).","default":"headers"},"clientId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client ID","description":"OAuth2 client identifier issued by the authorization server.","default":""},"clientSecret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret","description":"Confidential client secret used together with the client ID.","input_field_type":"password"},"audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Audience","description":"OAuth2 audience / API identifier for which the access token is requested. ","default":""},"grantType":{"type":"string","const":"client_credentials","title":"Grant Type","description":"OAuth2 grant type used when requesting the access token.","default":"client_credentials"},"scopes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scopes","description":"Space-separated list of OAuth2 scopes requested for the access token.","default":"read:all write:all"},"tokenUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Client Token URL","description":"URL used to obtain the OAuth2 token for the Integration Client.","default":"","input_field_type":"external_url_link"},"provider":{"type":"string","const":"ecw","title":"Provider","description":"Integration provider identifier. Always 'ecw'.","default":"ecw","input_field_not_visible":true},"isSandbox":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Sandbox","description":"Indicates if the integration is in sandbox mode. Turn off for production use. For Sandbox mode we will sync limited data for easy testing.","default":true},"authType":{"$ref":"#/components/schemas/IntegrationAuthType","title":"Authentication Type","description":"Authentication type used for this integration (basic or oauth).","default":"basic","input_field_not_visible":true},"sourceId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source ID","description":"Unique source identifier for ECW integration."},"connectorId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connector ID","description":"Unique connector identifier for ECW integration."},"dataSynchronizer":{"$ref":"#/components/schemas/IntegrationDataSynchronizerType","title":"Data Synchronizer","description":"Identifier for the data synchronizer associated with this ECW source.","default":"xcaliber_health"},"ehrTenantId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EHR Tenant ID","description":"EHR Tenant identifier sent as the x-tenant-id request header in API calls."},"ehrInstance":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"EHR Instance","description":"EHR instance identifier sent as the X-Ehr-Instance request header in API calls."},"apiKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"API Key","description":"API key for authenticating with ECW. This is required if authType is set to 'basic'."},"branding":{"anyOf":[{"$ref":"#/components/schemas/IntegrationBranding"},{"type":"null"}],"title":"Branding Assets","description":"Give your brand identity and select theme colors for a personalized experience."},"insurance":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsurance"},{"type":"null"}],"title":"Insurance Configuration","description":"Configuration details for the insurance organization associated with this integration. This includes the organization's name and NPI, which are essential for insurance verification processes."},"utm":{"anyOf":[{"$ref":"#/components/schemas/IntegrationUTMDetails"},{"type":"null"}],"title":"UTM Details","description":"UTM details associated with this integration. This includes the UTM source, medium, and campaign IDs."}},"type":"object","title":"ECW Integration","description":"ECW API key-based integration configuration."},"IntegrationExportData":{"properties":{"integration":{"anyOf":[{"$ref":"#/components/schemas/IntegrationsModel"},{"type":"null"}]},"use_cases":{"items":{"$ref":"#/components/schemas/IntegrationsUseCasesModel"},"type":"array","title":"Use Cases"},"resource_records":{"items":{"$ref":"#/components/schemas/IntegrationsResourceRecordsModel"},"type":"array","title":"Resource Records"}},"type":"object","title":"IntegrationExportData","description":"Full export payload: one integration plus all its use cases and resource records."},"IntegrationFileDetails":{"properties":{"bucketName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket Name","description":"Name of the S3 bucket where the file is stored."},"fileKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Key","description":"Key of the file stored in the S3 bucket."},"fileName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Name","description":"Original name of the file."},"contentType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type","description":"MIME type of the file."},"fileSignedUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Signed URL","description":"Signed URL to access the file. This URL is temporary and should be used promptly.","input_field_not_visible":true},"fileContentBase64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Content Base64","description":"Base64 encoded content of the file.","input_field_not_visible":true}},"type":"object","title":"File Details","description":"Model representing a practitioner's location."},"IntegrationFlowStatus":{"type":"string","enum":["insurance_verification_not_required","waiting_for_patient_to_upload_insurance","insurance_uploaded","insurance_verification_in_progress","insurance_verification_success","insurance_verification_failed"],"title":"Flow Status","description":"Represents the flow status of the integration.","x-enumTitles":{"insurance_uploaded":"Insurance Uploaded","insurance_verification_failed":"Insurance Verification Failed","insurance_verification_in_progress":"Insurance Verification In Progress","insurance_verification_not_required":"Insurance Verification Not Required","insurance_verification_success":"Insurance Verification Success","waiting_for_patient_to_upload_insurance":"Waiting for Patient to Upload Insurance"}},"IntegrationFlowTemplate-Input":{"properties":{"logicalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Logical ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Name","description":"Display name, e.g. 'eCW Generic Scheduling Resource (FIN-style)'."},"slotResourceStrategy":{"$ref":"#/components/schemas/SlotResourceResolutionStrategy","title":"Slot Resource Resolution","default":"practitioner_record_v1"},"patientPayloadStrategy":{"$ref":"#/components/schemas/PatientPayloadStrategy","title":"Patient Payload Strategy","default":"location_practitioner_v1"},"appointmentPayloadStrategy":{"$ref":"#/components/schemas/AppointmentPayloadStrategy","title":"Appointment Payload Strategy","default":"location_practitioner_patient_v1"},"insuranceNotesRoutingStrategy":{"$ref":"#/components/schemas/InsuranceNotesRoutingStrategy","title":"Insurance Notes Routing","default":"billing_notes_extension_v1"},"schedulingCapacityRule":{"anyOf":[{"$ref":"#/components/schemas/SlotCapacityRuleConfig-Input"},{"type":"null"}],"title":"Scheduling Capacity Rule","description":"Optional double-booking / appointment-type-exclusion rule applied during free-slot search. Absent means no capacity filtering is applied (today's behavior)."}},"type":"object","title":"Integration Flow Template","description":"Fully defines an integration's non-default flow behavior. Every field independently\nselects one named+versioned strategy; unset fields resolve to the literal default/legacy\nbehavior. A `None` IntegrationFlowTemplate on the Integration document means every one of\nthese strategies is the default — i.e. byte-identical to pre-template code."},"IntegrationFlowTemplate-Output":{"properties":{"logicalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Logical ID"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Name","description":"Display name, e.g. 'eCW Generic Scheduling Resource (FIN-style)'."},"slotResourceStrategy":{"$ref":"#/components/schemas/SlotResourceResolutionStrategy","title":"Slot Resource Resolution","default":"practitioner_record_v1"},"patientPayloadStrategy":{"$ref":"#/components/schemas/PatientPayloadStrategy","title":"Patient Payload Strategy","default":"location_practitioner_v1"},"appointmentPayloadStrategy":{"$ref":"#/components/schemas/AppointmentPayloadStrategy","title":"Appointment Payload Strategy","default":"location_practitioner_patient_v1"},"insuranceNotesRoutingStrategy":{"$ref":"#/components/schemas/InsuranceNotesRoutingStrategy","title":"Insurance Notes Routing","default":"billing_notes_extension_v1"},"schedulingCapacityRule":{"anyOf":[{"$ref":"#/components/schemas/SlotCapacityRuleConfig-Output"},{"type":"null"}],"title":"Scheduling Capacity Rule","description":"Optional double-booking / appointment-type-exclusion rule applied during free-slot search. Absent means no capacity filtering is applied (today's behavior)."}},"type":"object","title":"Integration Flow Template","description":"Fully defines an integration's non-default flow behavior. Every field independently\nselects one named+versioned strategy; unset fields resolve to the literal default/legacy\nbehavior. A `None` IntegrationFlowTemplate on the Integration document means every one of\nthese strategies is the default — i.e. byte-identical to pre-template code."},"IntegrationGender":{"type":"string","enum":["male","female","unknown","Unknown","prefer not to answer"],"title":"IntegrationGender","description":"Defines gender options for integration","x-enumTitles":{"Unknown":"Unknown","female":"Female","male":"Male","prefer not to answer":"Prefer Not to Answer","unknown":"unknown"}},"IntegrationGoogleConfig":{"properties":{"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","description":"List of permission scopes authorized for the integration.","input_field_not_visible":true,"input_field_type":"password"},"accessToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token","description":"Access token issued by the provider.","input_field_not_visible":true,"input_field_type":"password"},"refreshToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token","description":"Refresh token for obtaining a new access token.","input_field_not_visible":true,"input_field_type":"password"},"tokenType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Type","description":"Type of token, e.g., 'Bearer'.","input_field_not_visible":true},"expiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","description":"Expiration time of the access token in ISO 8601 format. Ex: 2023-10-05T14:48:00.000Z","input_field_not_visible":true},"connectedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Connected At","description":"Connection time of the OAuth integration in ISO 8601 format. Ex: 2023-10-05T14:48:00.000Z","input_field_not_visible":true},"renewedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Renewed At","description":"Last renewal time of the access token in ISO 8601 format. Ex: 2023-10-05T14:48:00.000Z","input_field_not_visible":true},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message","description":"Error message if token exchange or renewal failed."},"provider":{"type":"string","const":"google","title":"Provider","description":"Integration provider identifier. Always 'google'.","default":"google","input_field_not_visible":true},"authType":{"$ref":"#/components/schemas/IntegrationAuthType","title":"Authentication Type","description":"Authentication type used for this integration (basic or oauth).","default":"oauth","input_field_not_visible":true},"authUserEmail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Address","description":"Email address associated with the connected Google account.","input_field_not_visible":true},"authUserName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Your Name","description":"Display name of the connected Google account user."}},"type":"object","title":"Google Integration","description":"Google OAuth-based integration configuration."},"IntegrationImportAcknowledged":{"properties":{"message":{"type":"string","title":"Message","description":"Human-readable status indicating the import has started."}},"type":"object","required":["message"],"title":"IntegrationImportAcknowledged","description":"Immediate 202 acknowledgment returned when an import is accepted and queued for background processing."},"IntegrationImportBody":{"properties":{"integration":{"$ref":"#/components/schemas/IntegrationImportItem"},"use_cases":{"items":{"$ref":"#/components/schemas/IntegrationImportItem"},"type":"array","title":"Use Cases"},"resource_records":{"items":{"$ref":"#/components/schemas/IntegrationImportItem"},"type":"array","title":"Resource Records"}},"type":"object","title":"IntegrationImportBody","description":"Request body for the import endpoint.\n\nUses plain Pydantic models (not Beanie documents) so the body can be\nparsed without a live MongoDB connection.  The endpoint validates each\nitem against the appropriate *BaseConfig* TypeAdapter after parsing."},"IntegrationImportItem":{"properties":{},"additionalProperties":true,"type":"object","title":"IntegrationImportItem","description":"Generic schema-less item used in import body parsing — accepts any fields."},"IntegrationInsurance":{"properties":{"organizationName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Organization Name","description":"Name of the insurance organization associated with this integration. Stedi will use this information when processing insurance verifications."},"organizationNpi":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance Organization NPI","description":"NPI of the insurance organization associated with this integration. Stedi will use this information when processing insurance verifications."},"stediApiKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stedi API Key","description":"Per-integration Stedi API key. Used for eligibility checks. Falls back to the platform-wide STEDI_TEST_API_KEY / STEDI_PROD_API_KEY env vars (chosen by sandbox flag) when blank.","input_field_type":"password"}},"type":"object","title":"Insurance Configuration"},"IntegrationInsuranceCoverage-Input":{"properties":{"logical_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logical ID","description":"Unique identifier for the insurance coverage"},"payment_method":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPaymentMethod"},{"type":"null"}],"title":"Payment Method","description":"Preferred payment method for the patient."},"is_primary_coverage":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Primary Coverage","description":"Indicates if this insurance coverage is the primary coverage.","default":false},"coverage_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage Status","description":"Status of the coverage as reported by the EHR (e.g. active, cancelled)."},"documents_details":{"anyOf":[{"$ref":"#/components/schemas/IntegrationDocumentsDetails"},{"type":"null"}],"title":"Documents Details","description":"Details about the documents associated."},"insurance_details":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceDetails"},{"type":"null"}],"title":"Insurance Details","description":"Details about the insurance associated."},"ocr_response":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"OCR Response","description":"OCR response data for insurance card images."},"stedi_response":{"anyOf":[{"$ref":"#/components/schemas/InsuranceVerificationResponse"},{"type":"null"}],"title":"Stedi Response","description":"Stedi response data for insurance details."},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","title":"Insurance Coverage"},"IntegrationInsuranceCoverage-Output":{"properties":{"logical_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logical ID","description":"Unique identifier for the insurance coverage"},"payment_method":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPaymentMethod"},{"type":"null"}],"title":"Payment Method","description":"Preferred payment method for the patient."},"is_primary_coverage":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Primary Coverage","description":"Indicates if this insurance coverage is the primary coverage.","default":false},"coverage_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coverage Status","description":"Status of the coverage as reported by the EHR (e.g. active, cancelled)."},"documents_details":{"anyOf":[{"$ref":"#/components/schemas/IntegrationDocumentsDetails"},{"type":"null"}],"title":"Documents Details","description":"Details about the documents associated."},"insurance_details":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceDetails"},{"type":"null"}],"title":"Insurance Details","description":"Details about the insurance associated."},"ocr_response":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"OCR Response","description":"OCR response data for insurance card images."},"stedi_response":{"anyOf":[{"$ref":"#/components/schemas/InsuranceVerificationResponse"},{"type":"null"}],"title":"Stedi Response","description":"Stedi response data for insurance details."},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","title":"Insurance Coverage"},"IntegrationInsuranceDetails":{"properties":{"logical_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logical ID","description":"Unique identifier for the insurance coverage"},"member_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Member ID","description":"Member ID of the insurance"},"payer_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payer ID","description":"Payer ID of the insurance"},"member_type":{"anyOf":[{"$ref":"#/components/schemas/IntegrationMemberType"},{"type":"null"}],"title":"Member Type","description":"Type of the insurance member, Ex: Primary/Dependent"},"relationship":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relationship","description":"Patient's Relationship with policy holder. Self in case of member_type is Primary.One of child, Spouse, Parent, Other in case of member_type is Dependent.","default":"self"},"payer_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payer Name","description":"Name of the insurance payer"},"primary_member_first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Member First Name","description":"First name of the primary insurance member"},"primary_member_last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Member Last Name","description":"Last name of the primary insurance member"},"primary_member_gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Member gender","description":"Gender of the primary insurance member"},"primary_member_dob":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Member DOB","description":"DOB of the primary insurance member"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date","description":"Start date of the insurance coverage"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date","description":"End date of the insurance coverage"},"insurance_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Insurance ID","description":"Insurance ID number"},"group_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Number","description":"Insurance plan group number"},"group_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Name","description":"Insurance plan group name/description"}},"type":"object","title":"Insurance Coverage"},"IntegrationInsuranceFailureReminder":{"type":"string","enum":["no_reminders","remind_once","remind_until_verification_success"],"title":"Insurance Verification Failure Reminder Trigger","description":"Defines triggers for sending reminders to patients on insurance verification failure.","x-enumTitles":{"no_reminders":"No Reminders","remind_once":"Remind Once","remind_until_verification_success":"Remind Until Verification Success"}},"IntegrationInsuranceFlowSettings-Input":{"properties":{"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Status of the insurance flow","default":"inactive","input_field_helper_text":"Select inactive to disable this insurance flow without deleting it."},"patient_types":{"items":{"$ref":"#/components/schemas/IntegrationPatientTypes"},"type":"array","title":"Patient Types","description":"List of patient types that this insurance flow settings applies to","default":["new_patient"],"input_field_helper_text":"Select the patient types that this insurance flow settings should be applied to."},"verification_phase":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceVerificationPhase"},{"type":"null"}],"title":"Verification Phase","description":"Phase of the insurance flow that this configuration applies to","default":"before_appointment","input_field_helper_text":"Specify the phase of the insurance flow that this configuration should handle."},"upload_insurance_cards":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"title":"Upload Insurance Cards to EHR","description":"Whether to upload insurance cards to the EHR. If set to inactive, insurance cards will not be uploaded.","default":"active","input_field_helper_text":"Select inactive to not upload insurance cards. If active, the system will upload insurance cards to the EHR."},"do_stedi_verification":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"title":"Do Stedi Verification","description":"Whether to perform insurance verification through Stedi. If set to inactive, insurance verification will be skipped.","default":"active","input_field_helper_text":"Select inactive to skip insurance verification through Stedi. If active, the system will perform insurance verification using Stedi's services."},"is_stedi_sandbox":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Stedi Is Sandbox","description":"Whether to use the Stedi sandbox environment (test API key) instead of production for eligibility checks. Turn off for production use.","default":false,"input_field_helper_text":"Enable to route Stedi verification calls through the sandbox environment. Useful for testing without affecting production billing."},"skip_card_upload":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Skip Card Upload","description":"Whether patients can submit insurance details without uploading a card image, and without an existing EHR patient record. Enables pre-appointment outreach to be sent before the patient has been created in the EHR.","default":false,"input_field_helper_text":"Enable to allow insurance collection without a card upload or a pre-existing EHR patient. The patient and coverage are created in the EHR afterward, from the collected details."},"stedi_npi_source":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStediNpiSource"},{"type":"null"}],"title":"Stedi NPI Source","description":"Which NPI to send to Stedi for eligibility checks. Group NPI uses the organization NPI configured on the integration; Provider NPI uses the rendering practitioner's NPI.","default":"group_npi","input_field_helper_text":"Select Group NPI to use the organization-level NPI from the integration. Select Provider NPI to use the practitioner's NPI; falls back to the group NPI if the practitioner has no NPI on file."},"ocr_workflow_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Insurance Card OCR Workflow","description":"Workflow used to read insurance cards. Leave empty to use the built-in OCR service. Selecting one moves the extraction prompt, model and fallbacks into the workflow, where they can be changed without a deploy.","input_field_helper_text":"Leave empty to keep using the built-in OCR service for this flow.","input_field_type":"workflow_selection_with_workflow_id"},"ocr_workflow_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Insurance Card OCR Workflow Version","description":"Version of the OCR workflow to run. Pin a version so an edit in the dashboard does not reach production until it is promoted here; leave empty to always run the latest.","input_field_helper_text":"Leave empty to always run the active version.","input_field_type":"workflow_selection_with_version_number"},"ocr_fallback_to_service":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"title":"Fall Back to OCR Service","description":"Whether to fall back to the built-in OCR service when the workflow is missing, fails, or returns nothing usable. Keep active: the workflow is user-editable, so a broken prompt or a deleted workflow must not take card extraction down for the clinic.","default":"active","input_field_helper_text":"Select inactive only if a failed workflow extraction should fail the flow outright."},"update_result_on":{"items":{"$ref":"#/components/schemas/IntegrationInsuranceUpdateResultOn"},"type":"array","title":"Update Billing Notes to EHR","description":"List of insurance flow events that should trigger an update to the insurance information to billing notes section in the EHR. Empty list means insurance information will not be updated to billing notes.","default":["on_failure","on_success"],"input_field_helper_text":"Leave empty to not update billing notes. Select specific events to update billing notes for those events."},"upload_stedi_responses":{"items":{"$ref":"#/components/schemas/IntegrationInsuranceUploadStediResponseOn"},"type":"array","title":"Upload Stedi Responses to EHR","description":"List of insurance flow events that should trigger an upload of Stedi responses to the EHR. Empty list means no Stedi responses will be uploaded.","default":["on_failure","on_success"],"input_field_helper_text":"Leave empty to not upload Stedi responses. Select specific events to upload Stedi responses for those events."},"failure_reminder":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceFailureReminder"},{"type":"null"}],"title":"Failure Reminder","description":"Configuration for sending reminders when insurance verification fails","default":"no_reminders"},"allowed_visit_statuses":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentVisitStatus"},"type":"array","title":"Allowed Visit Statuses (Legacy)","description":"(Legacy) List of visit statuses of the appointments for which the insurance flow settings should be applied.","input_field_not_visible":false},"allowed_visit_statuses_ids":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Visit Status Codes","description":"List of visit status codes for which the insurance flow settings should be applied.","input_field_helper_text":"Leave empty to allow all Visit Statuses. Select specific Visit Statusresource records to restrict the insurance flow settings.","input_field_type":"integrations_visit_status_selection"},"allowed_appointment_type_ids":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Appointment/Visit Types","description":"List of appointment type resource record ids for which the insurance flow settings should be applied.","input_field_helper_text":"Leave empty to allow all appointment types. Select specific appointment type resource records to restrict the insurance flow settings.","input_field_type":"integrations_appointment_types_selection"},"allowed_appointment_types":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentTypes"},"type":"array","title":"Allowed Appointment Types (Legacy)","description":"Deprecated legacy appointment type names kept for backwards compatibility. TODO: remove after migrating to allowed_appointment_type_ids.","input_field_not_visible":false},"allowed_locations":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Locations","description":"List of location ids for which the insurance flow settings apply.","input_field_helper_text":"Leave empty to allow all locations. Select specific locations to restrict the insurance flow settings to those locations only.","input_field_type":"integrations_locations_selection"},"allowed_practitioners":{"anyOf":[{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Practitioners","description":"List of practitioner ids for which the insurance flow settings apply.","input_field_helper_text":"Leave empty to allow all practitioners. Select specific practitioners to restrict the insurance flow settings to those practitioners only.","input_field_type":"practitioners_selection"}},"type":"object","title":"IntegrationInsuranceFlowSettings"},"IntegrationInsuranceFlowSettings-Output":{"properties":{"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Status of the insurance flow","default":"inactive","input_field_helper_text":"Select inactive to disable this insurance flow without deleting it."},"patient_types":{"items":{"$ref":"#/components/schemas/IntegrationPatientTypes"},"type":"array","title":"Patient Types","description":"List of patient types that this insurance flow settings applies to","default":["new_patient"],"input_field_helper_text":"Select the patient types that this insurance flow settings should be applied to."},"verification_phase":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceVerificationPhase"},{"type":"null"}],"title":"Verification Phase","description":"Phase of the insurance flow that this configuration applies to","default":"before_appointment","input_field_helper_text":"Specify the phase of the insurance flow that this configuration should handle."},"upload_insurance_cards":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"title":"Upload Insurance Cards to EHR","description":"Whether to upload insurance cards to the EHR. If set to inactive, insurance cards will not be uploaded.","default":"active","input_field_helper_text":"Select inactive to not upload insurance cards. If active, the system will upload insurance cards to the EHR."},"do_stedi_verification":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"title":"Do Stedi Verification","description":"Whether to perform insurance verification through Stedi. If set to inactive, insurance verification will be skipped.","default":"active","input_field_helper_text":"Select inactive to skip insurance verification through Stedi. If active, the system will perform insurance verification using Stedi's services."},"is_stedi_sandbox":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Stedi Is Sandbox","description":"Whether to use the Stedi sandbox environment (test API key) instead of production for eligibility checks. Turn off for production use.","default":false,"input_field_helper_text":"Enable to route Stedi verification calls through the sandbox environment. Useful for testing without affecting production billing."},"skip_card_upload":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Skip Card Upload","description":"Whether patients can submit insurance details without uploading a card image, and without an existing EHR patient record. Enables pre-appointment outreach to be sent before the patient has been created in the EHR.","default":false,"input_field_helper_text":"Enable to allow insurance collection without a card upload or a pre-existing EHR patient. The patient and coverage are created in the EHR afterward, from the collected details."},"stedi_npi_source":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStediNpiSource"},{"type":"null"}],"title":"Stedi NPI Source","description":"Which NPI to send to Stedi for eligibility checks. Group NPI uses the organization NPI configured on the integration; Provider NPI uses the rendering practitioner's NPI.","default":"group_npi","input_field_helper_text":"Select Group NPI to use the organization-level NPI from the integration. Select Provider NPI to use the practitioner's NPI; falls back to the group NPI if the practitioner has no NPI on file."},"ocr_workflow_id":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Insurance Card OCR Workflow","description":"Workflow used to read insurance cards. Leave empty to use the built-in OCR service. Selecting one moves the extraction prompt, model and fallbacks into the workflow, where they can be changed without a deploy.","input_field_helper_text":"Leave empty to keep using the built-in OCR service for this flow.","input_field_type":"workflow_selection_with_workflow_id"},"ocr_workflow_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Insurance Card OCR Workflow Version","description":"Version of the OCR workflow to run. Pin a version so an edit in the dashboard does not reach production until it is promoted here; leave empty to always run the latest.","input_field_helper_text":"Leave empty to always run the active version.","input_field_type":"workflow_selection_with_version_number"},"ocr_fallback_to_service":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"title":"Fall Back to OCR Service","description":"Whether to fall back to the built-in OCR service when the workflow is missing, fails, or returns nothing usable. Keep active: the workflow is user-editable, so a broken prompt or a deleted workflow must not take card extraction down for the clinic.","default":"active","input_field_helper_text":"Select inactive only if a failed workflow extraction should fail the flow outright."},"update_result_on":{"items":{"$ref":"#/components/schemas/IntegrationInsuranceUpdateResultOn"},"type":"array","title":"Update Billing Notes to EHR","description":"List of insurance flow events that should trigger an update to the insurance information to billing notes section in the EHR. Empty list means insurance information will not be updated to billing notes.","default":["on_failure","on_success"],"input_field_helper_text":"Leave empty to not update billing notes. Select specific events to update billing notes for those events."},"upload_stedi_responses":{"items":{"$ref":"#/components/schemas/IntegrationInsuranceUploadStediResponseOn"},"type":"array","title":"Upload Stedi Responses to EHR","description":"List of insurance flow events that should trigger an upload of Stedi responses to the EHR. Empty list means no Stedi responses will be uploaded.","default":["on_failure","on_success"],"input_field_helper_text":"Leave empty to not upload Stedi responses. Select specific events to upload Stedi responses for those events."},"failure_reminder":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceFailureReminder"},{"type":"null"}],"title":"Failure Reminder","description":"Configuration for sending reminders when insurance verification fails","default":"no_reminders"},"allowed_visit_statuses":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentVisitStatus"},"type":"array","title":"Allowed Visit Statuses (Legacy)","description":"(Legacy) List of visit statuses of the appointments for which the insurance flow settings should be applied.","input_field_not_visible":false},"allowed_visit_statuses_ids":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Visit Status Codes","description":"List of visit status codes for which the insurance flow settings should be applied.","input_field_helper_text":"Leave empty to allow all Visit Statuses. Select specific Visit Statusresource records to restrict the insurance flow settings.","input_field_type":"integrations_visit_status_selection"},"allowed_appointment_type_ids":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Appointment/Visit Types","description":"List of appointment type resource record ids for which the insurance flow settings should be applied.","input_field_helper_text":"Leave empty to allow all appointment types. Select specific appointment type resource records to restrict the insurance flow settings.","input_field_type":"integrations_appointment_types_selection"},"allowed_appointment_types":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentTypes"},"type":"array","title":"Allowed Appointment Types (Legacy)","description":"Deprecated legacy appointment type names kept for backwards compatibility. TODO: remove after migrating to allowed_appointment_type_ids.","input_field_not_visible":false},"allowed_locations":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Locations","description":"List of location ids for which the insurance flow settings apply.","input_field_helper_text":"Leave empty to allow all locations. Select specific locations to restrict the insurance flow settings to those locations only.","input_field_type":"integrations_locations_selection"},"allowed_practitioners":{"anyOf":[{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array"},{"type":"null"}],"title":"Allowed Practitioners","description":"List of practitioner ids for which the insurance flow settings apply.","input_field_helper_text":"Leave empty to allow all practitioners. Select specific practitioners to restrict the insurance flow settings to those practitioners only.","input_field_type":"practitioners_selection"}},"type":"object","title":"IntegrationInsuranceFlowSettings"},"IntegrationInsuranceHandlingStrategy":{"type":"string","enum":["insurance_from_ehr","insurance_from_uploaded_cards"],"title":"Insurance Verification Handling Strategy","description":"Defines strategies for handling insurance information during appointment scheduling and reminders.","x-enumTitles":{"insurance_from_ehr":"Use Insurance from EHR","insurance_from_uploaded_cards":"Use Insurance from Uploaded Cards"}},"IntegrationInsuranceReminder-Input":{"properties":{"channels":{"items":{"$ref":"#/components/schemas/InsuranceReminderChannelStatus"},"type":"array","title":"Channels","description":"Per-channel delivery tracking for the insurance reminder."},"reason_for_reminder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason for Reminder","description":"Reason for sending the insurance reminder (e.g., upcoming appointment, missed appointment)."},"short_link_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Link ID","description":"The outreach short link id this reminder was sent for, if applicable. Set by send_pre_appointment_insurance_outreach so callers can start a completion-timeout monitor keyed on it — not populated by other outreach flows."}},"type":"object","title":"Insurance Reminder"},"IntegrationInsuranceReminder-Output":{"properties":{"channels":{"items":{"$ref":"#/components/schemas/InsuranceReminderChannelStatus"},"type":"array","title":"Channels","description":"Per-channel delivery tracking for the insurance reminder."},"reason_for_reminder":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason for Reminder","description":"Reason for sending the insurance reminder (e.g., upcoming appointment, missed appointment)."},"short_link_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Link ID","description":"The outreach short link id this reminder was sent for, if applicable. Set by send_pre_appointment_insurance_outreach so callers can start a completion-timeout monitor keyed on it — not populated by other outreach flows."},"delivery_status":{"$ref":"#/components/schemas/IntegrationAppointmentReminderDeliveryStatus","title":"Delivery Status","description":"DELIVERED if any opted channel was delivered, otherwise FAILED.","readOnly":true}},"type":"object","required":["delivery_status"],"title":"Insurance Reminder"},"IntegrationInsuranceResults":{"properties":{"is_process_completed":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAnswers"},{"type":"null"}],"title":"Is Insurance Validated","description":"Indicates whether the insurance has been validated successfully."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Additional information or message related to the insurance validation process."},"is_insurance_card_uploaded":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAnswers"},{"type":"null"}],"title":"Is Insurance Card Uploaded","description":"Indicates whether the insurance card has been uploaded by the patient."},"is_insurance_card_uploaded_to_ehr":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAnswers"},{"type":"null"}],"title":"Is Insurance Card Uploaded to EHR","description":"Indicates whether the insurance card has been uploaded to the EHR."},"is_ocr_extracted":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAnswers"},{"type":"null"}],"title":"Is OCR Extracted","description":"Indicates whether the OCR extraction has been performed on the uploaded insurance card."},"stedi_final_status":{"anyOf":[{"$ref":"#/components/schemas/InsuranceStediFinalStatus"},{"type":"null"}],"title":"Stedi Final Status","description":"The final status of the insurance verification process performed by Stedi."},"stedi_final_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stedi Final Summary","description":"A summary of the final results from Stedi after insurance verification."},"is_coverage_added_to_ehr":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAnswers"},{"type":"null"}],"title":"Is Coverage Added to EHR","description":"Indicates whether the insurance coverage has been added to the EHR."},"is_billing_notes_updated_to_ehr":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAnswers"},{"type":"null"}],"title":"Is Billing Notes Updated to EHR","description":"Indicates whether the billing notes have been updated in the EHR."},"is_stedi_response_uploaded_to_ehr":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAnswers"},{"type":"null"}],"title":"Is Stedi Response Uploaded to EHR","description":"Indicates whether the stedi response file has been uploaded to the EHR."}},"type":"object","title":"Insurance Results"},"IntegrationInsuranceUpdateResultOn":{"type":"string","enum":["on_success","on_failure"],"title":"Update Billing Notes On","description":"Defines triggers for publishing insurance verification results back to EHR.","x-enumTitles":{"on_failure":"Publish On Failure","on_success":"Publish On Success"}},"IntegrationInsuranceUploadStediResponseOn":{"type":"string","enum":["on_success","on_failure"],"title":"Upload Stedi Responses to EHR","description":"Defines triggers for uploading Stedi responses to the EHR.","x-enumTitles":{"on_failure":"Upload On Failure","on_success":"Upload On Success"}},"IntegrationInsuranceVerificationPhase":{"type":"string","enum":["before_appointment","after_appointment"],"title":"Insurance Verification Phase","description":"Defines verification phases for insurance verification.","x-enumTitles":{"after_appointment":"After Appointment","before_appointment":"Before Appointment"}},"IntegrationItem":{"properties":{"name":{"type":"string","title":"Name"},"connected":{"type":"boolean","title":"Connected"},"isActive":{"type":"boolean","title":"Isactive"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope"},"connectedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Connectedat"},"createdAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Createdat"},"updatedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updatedat"},"createdBy":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Createdby"},"updatedBy":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Updatedby"},"expiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expiresat"},"lastSync":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Lastsync"}},"type":"object","required":["name","connected","isActive"],"title":"IntegrationItem"},"IntegrationLocationPosition":{"properties":{"latitude":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}],"title":"Latitude","description":"Latitude of the location"},"longitude":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"null"}],"title":"Longitude","description":"Longitude of the location"}},"type":"object","title":"Location Position","description":"Model representing geographical position of a location."},"IntegrationLocations":{"properties":{"locationId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location ID (alias Department ID)","description":"Unique identifier for the location or department."},"locationName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Name (alias Department Name)","description":"Name of the location or department."}},"type":"object","title":"Location","description":"Model representing a practitioner's location."},"IntegrationMemberType":{"type":"string","enum":["primary","dependent"],"title":"IntegrationMemberType","x-enumTitles":{"dependent":"Dependent","primary":"Primary"}},"IntegrationMicrosoftConfig":{"properties":{"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","description":"List of permission scopes authorized for the integration.","input_field_not_visible":true,"input_field_type":"password"},"accessToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token","description":"Access token issued by the provider.","input_field_not_visible":true,"input_field_type":"password"},"refreshToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token","description":"Refresh token for obtaining a new access token.","input_field_not_visible":true,"input_field_type":"password"},"tokenType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Type","description":"Type of token, e.g., 'Bearer'.","input_field_not_visible":true},"expiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","description":"Expiration time of the access token in ISO 8601 format. Ex: 2023-10-05T14:48:00.000Z","input_field_not_visible":true},"connectedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Connected At","description":"Connection time of the OAuth integration in ISO 8601 format. Ex: 2023-10-05T14:48:00.000Z","input_field_not_visible":true},"renewedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Renewed At","description":"Last renewal time of the access token in ISO 8601 format. Ex: 2023-10-05T14:48:00.000Z","input_field_not_visible":true},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message","description":"Error message if token exchange or renewal failed."},"provider":{"type":"string","const":"microsoft","title":"Provider","description":"Integration provider identifier. Always 'microsoft'.","default":"microsoft","input_field_not_visible":true},"authType":{"$ref":"#/components/schemas/IntegrationAuthType","title":"Authentication Type","description":"Authentication type used for this integration (basic or oauth).","default":"oauth","input_field_not_visible":true},"authUserEmail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Address","description":"Email address associated with the connected Microsoft account.","input_field_not_visible":true},"authUserName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Your Name","description":"Display name of the connected Microsoft account user."}},"type":"object","title":"Microsoft Integration","description":"Microsoft OAuth-based integration configuration."},"IntegrationOktaConfig":{"properties":{"baseUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Client Base Url","description":"Base URL path/domain for the Integration Client Requests.","default":""},"authKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization Key Name","description":"Key name used for authorization in API requests.","default":"Authorization"},"authAddTo":{"anyOf":[{"type":"string","enum":["headers","query"]},{"type":"null"}],"title":"Authorization Key Location","description":"Where to include the key-value pair in API requests (headers or query).","default":"headers"},"clientId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client ID","description":"OAuth2 client identifier issued by the authorization server.","default":""},"clientSecret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret","description":"Confidential client secret used together with the client ID.","input_field_type":"password"},"audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Audience","description":"OAuth2 audience / API identifier for which the access token is requested. ","default":""},"grantType":{"type":"string","const":"client_credentials","title":"Grant Type","description":"OAuth2 grant type used when requesting the access token.","default":"client_credentials"},"scopes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scopes","description":"Space-separated list of OAuth2 scopes requested for the access token.","default":"read:all write:all"},"tokenUrl":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Client Token URL","description":"URL used to obtain the OAuth2 token for the Integration Client.","default":"","input_field_type":"external_url_link"},"provider":{"type":"string","const":"okta","title":"Provider","description":"Integration provider identifier. Always 'okta'.","default":"okta","input_field_not_visible":true},"tokenRequestFormat":{"type":"string","enum":["form","json"],"title":"Token Request Format","description":"Format for the token request payload. 'form' for form-encoded, 'json' for JSON.","default":"form","input_field_not_visible":true},"authType":{"$ref":"#/components/schemas/IntegrationAuthType","title":"Authentication Type","description":"Authentication type used for this integration.","default":"basic","input_field_not_visible":true}},"type":"object","title":"Okta Integration","description":"Okta client-credentials integration configuration for obtaining bearer tokens."},"IntegrationPatientCreatedSource":{"type":"string","enum":["web","app","call","sync","existing_patient_through_web"],"title":"IntegrationPatientCreatedSource","x-enumTitles":{"app":"App","call":"Call","existing_patient_through_web":"Existing Patient Through Web","sync":"Sync","web":"Web"}},"IntegrationPatientStatus":{"type":"string","enum":["created","updated","sync_created","sync_failed","existing_patient"],"title":"IntegrationPatientStatus","description":"Defines appointment status options for integration","x-enumTitles":{"created":"Created","existing_patient":"Existing Patient","sync_created":"Sync Created","sync_failed":"Sync Failed","updated":"Updated"}},"IntegrationPatientTypes":{"type":"string","enum":["new_patient","existing_patient"],"title":"Patient Type","description":"Defines patient types for insurance flow.","x-enumTitles":{"existing_patient":"Existing Patient","new_patient":"New Patient"}},"IntegrationPaymentMethod":{"type":"string","enum":["self_pay","commercial_insurance","medicare","medicaid"],"title":"IntegrationPaymentMethod","x-enumTitles":{"commercial_insurance":"Commercial Insurance","medicaid":"Medicaid","medicare":"Medicare","self_pay":"Self Pay"}},"IntegrationPractitionerSpecialty":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialty Name","description":"Name of the practitioner's specialty"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Specialty Code","description":"Code representing the practitioner's specialty"}},"type":"object","title":"Practitioner Specialty","description":"Model representing a practitioner's specialty."},"IntegrationProviders":{"type":"string","enum":["microsoft","google","athena","ecw","slack","okta"],"title":"IntegrationProviders","description":"Supported integration providers."},"IntegrationRecordSource":{"type":"string","enum":["from_upstream","by_interactly"],"title":"IntegrationRecordSource","x-enumTitles":{"by_interactly":"By Interactly","from_upstream":"From Upstream"}},"IntegrationResourceRecordType":{"type":"string","enum":["locations","practitioners","visiting_reasons","patients","insurance_details","appointments","waitlist","outreach","appointment_types","visit_statuses","insurance_payers","provider_resources"],"title":"IntegrationResourceRecordType","description":"Defines the type of resource record."},"IntegrationSlackConfig":{"properties":{"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","description":"List of permission scopes authorized for the integration.","input_field_not_visible":true,"input_field_type":"password"},"accessToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token","description":"Access token issued by the provider.","input_field_not_visible":true,"input_field_type":"password"},"refreshToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token","description":"Refresh token for obtaining a new access token.","input_field_not_visible":true,"input_field_type":"password"},"tokenType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Type","description":"Type of token, e.g., 'Bearer'.","input_field_not_visible":true},"expiresAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","description":"Expiration time of the access token in ISO 8601 format. Ex: 2023-10-05T14:48:00.000Z","input_field_not_visible":true},"connectedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Connected At","description":"Connection time of the OAuth integration in ISO 8601 format. Ex: 2023-10-05T14:48:00.000Z","input_field_not_visible":true},"renewedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Renewed At","description":"Last renewal time of the access token in ISO 8601 format. Ex: 2023-10-05T14:48:00.000Z","input_field_not_visible":true},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message","description":"Error message if token exchange or renewal failed."},"provider":{"type":"string","const":"slack","title":"Provider","description":"Integration provider identifier. Always 'slack'.","default":"slack","input_field_not_visible":true},"authType":{"$ref":"#/components/schemas/IntegrationAuthType","title":"Authentication Type","description":"Authentication type used for this integration (basic or oauth).","default":"oauth","input_field_not_visible":true},"botUserId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bot User ID","description":"Slack bot user ID associated with this app."},"appId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App ID","description":"Slack app ID of the connected application."},"authedTeam":{"anyOf":[{"$ref":"#/components/schemas/IntegrationSlackTeam"},{"type":"null"}],"title":"Authorized Team","description":"Slack team/workspace details."},"authedUser":{"anyOf":[{"$ref":"#/components/schemas/IntegrationSlackUser"},{"type":"null"}],"title":"Authorized User","description":"Slack user who authorized the connection."}},"type":"object","title":"Slack Integration","description":"Slack OAuth-based integration configuration."},"IntegrationSlackTeam":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team ID","description":"Slack workspace/team ID."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Name","description":"Name of the Slack workspace/team."}},"type":"object","title":"Slack Team","description":"Slack team details."},"IntegrationSlackUser":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User ID","description":"Slack user ID."},"scope":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"User Scopes","description":"Scopes authorized for the user."},"accessToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Token","description":"Access token for the authenticated Slack user."},"tokenType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Type","description":"Type of token, e.g., 'Bearer'."}},"type":"object","title":"Slack User","description":"Slack user authentication details."},"IntegrationStatus":{"type":"string","enum":["active","inactive"],"title":"Status","description":"Represents whether the integration is active or inactive.","x-enumTitles":{"active":"Active","inactive":"Inactive"}},"IntegrationStediNpiSource":{"type":"string","enum":["group_npi","provider_npi"],"title":"Stedi NPI Source","description":"Defines which NPI to send when calling Stedi for insurance verification.","x-enumTitles":{"group_npi":"Group NPI (Organization)","provider_npi":"Provider NPI (Practitioner)"}},"IntegrationTelecom":{"properties":{"system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telecom System","description":"The system that defines the type of telecom communication"},"value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telecom Value","description":"The actual telecom communication value (e.g., phone number)"},"use":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telecom Use","description":"The purpose of the telecom communication (e.g., work, home)"},"rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Telecom Rank","description":"The rank or priority of the telecom communication"}},"type":"object","title":"Telecom","description":"Model representing telecom information associated with an integration.\nEx: {\n    \"system\": \"phone\",\n    \"value\": \"555-123-4567\",\n    \"use\": \"work\",\n    \"rank\": 1\n}"},"IntegrationTrackingDetails":{"properties":{"utm_source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"UTM Source ID","description":"UTM source label id for miscellaneous-information-item. This is used to track the source of traffic for the integration."},"utm_medium_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"UTM Medium ID","description":"UTM medium label id for miscellaneous-information-item. This is used to track the medium of traffic for the integration."},"utm_campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"UTM Campaign ID","description":"UTM campaign label id for miscellaneous-information-item. This is used to track the campaign of traffic for the integration."},"patient_creation":{"anyOf":[{"$ref":"#/components/schemas/IntegrationTrackingStatus"},{"type":"null"}],"title":"Patient Creation Status","description":"Indicates the current status of the patient creation process.","default":"not_started"},"appointment_creation":{"anyOf":[{"$ref":"#/components/schemas/IntegrationTrackingStatus"},{"type":"null"}],"title":"Appointment Creation Status","description":"Indicates the current status of the appointment creation process.","default":"not_started"},"insurance_flow_status":{"anyOf":[{"$ref":"#/components/schemas/IntegrationFlowStatus"},{"type":"null"}],"title":"Insurance Flow Status","description":"Indicates the current status of the insurance verification process.","default":"insurance_verification_not_required"},"utm_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"UTM Source","description":"The source of the traffic (e.g., email, linkedin)."},"utm_medium":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"UTM Medium","description":"The medium of the traffic (e.g., social, press_release)."},"utm_campaign":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"UTM Campaign","description":"The name of the campaign (e.g., product_launch)."},"web_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Web Session ID","description":"The unique identifier for the web session."},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation ID","description":"The unique identifier for the conversation."}},"type":"object","title":"Integration Tracking Details"},"IntegrationTrackingStatus":{"type":"string","enum":["not_started","in_progress","completed"],"title":"IntegrationTrackingStatus","x-enumTitles":{"completed":"Completed","in_progress":"In Progress","not_started":"Not Started"}},"IntegrationType":{"type":"string","enum":["microsoft","google"],"title":"IntegrationType"},"IntegrationUITemplates":{"type":"string","enum":["scheduling-session-v2"],"title":"IntegrationUITemplates","description":"Defines the UI templates available for integrations.","x-enumTitles":{"scheduling-session-v2":"Scheduling Session V2"}},"IntegrationUTMDetails":{"properties":{"utm_source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"UTM Source ID","description":"UTM source label id for miscellaneous-information-item. This is used to track the source of traffic for the integration."},"utm_medium_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"UTM Medium ID","description":"UTM medium label id for miscellaneous-information-item. This is used to track the medium of traffic for the integration."},"utm_campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"UTM Campaign ID","description":"UTM campaign label id for miscellaneous-information-item. This is used to track the campaign of traffic for the integration."}},"type":"object","title":"Integration UTM Details"},"IntegrationUseCaseCommunicationPreference":{"type":"string","enum":["call","sms","email","call_and_sms","call_and_email","sms_and_email","call_and_sms_and_email","call_or_sms","call_or_email","sms_or_email","call_or_sms_or_email"],"title":"Communication Preference","description":"Defines the communication preferences for a use-case.","x-enumTitles":{"call":"Call","call_and_email":"Call and Email","call_and_sms":"Call and SMS","call_and_sms_and_email":"Call and SMS and Email","call_or_email":"Call or Email","call_or_sms":"Call or SMS","call_or_sms_or_email":"Call or SMS or Email","email":"Email","sms":"SMS","sms_and_email":"SMS and Email","sms_or_email":"SMS or Email"}},"IntegrationUseCaseType":{"type":"string","enum":["appointment_reminder_with_sheet","lab_reminder_with_sheet","appointment_reminder","final_appointment_notification","lab_reminder","appointment_scheduling","appointment_cancellation","appointment_rescheduling","appointment_scheduling_with_waitlist","medication_refill","invoice_enquiry","web_scheduling","insurance_reminder","appointment_enquiry"],"title":"IntegrationUseCaseType","description":"Defines the type of use-case for an integration.","x-enumTitles":{"appointment_cancellation":"Appointment Cancellation","appointment_enquiry":"Appointment Enquiry","appointment_reminder":"Appointment Reminder","appointment_reminder_with_sheet":"Appointment Reminder with Sheet","appointment_rescheduling":"Appointment Rescheduling","appointment_scheduling":"Appointment Scheduling","appointment_scheduling_with_waitlist":"Appointment Scheduling with Waitlist","final_appointment_notification":"Final Appointment Notification","insurance_reminder":"Insurance Reminder","invoice_enquiry":"Invoice Enquiry","lab_reminder":"Lab Reminder","lab_reminder_with_sheet":"Lab Reminder with Sheet","medication_refill":"Medication Refill","web_scheduling":"Web Scheduling"}},"IntegrationVisitDetails-Input":{"properties":{"visit_reason_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Visit Reason ID","description":"Identifier for the visit reason associated with the session."},"visit_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason","description":"High-level reason for the visit."},"visit_reason_other":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason Other","description":"Additional details if the visit reason is categorized as 'Other' or 'Not Listed'."},"visit_type":{"anyOf":[{"$ref":"#/components/schemas/IntegrationVisitTypes"},{"type":"null"}],"title":"Visit Type","description":"Type of the visit (e.g., First Time, Follow Up)."}},"type":"object","title":"Integration Visit Details"},"IntegrationVisitDetails-Output":{"properties":{"visit_reason_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason ID","description":"Identifier for the visit reason associated with the session."},"visit_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason","description":"High-level reason for the visit."},"visit_reason_other":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason Other","description":"Additional details if the visit reason is categorized as 'Other' or 'Not Listed'."},"visit_type":{"anyOf":[{"$ref":"#/components/schemas/IntegrationVisitTypes"},{"type":"null"}],"title":"Visit Type","description":"Type of the visit (e.g., First Time, Follow Up)."}},"type":"object","title":"Integration Visit Details"},"IntegrationVisitReasonApplicableUseCaseType":{"type":"string","enum":["scheduling","cancel_reschedule"],"title":"IntegrationVisitReasonApplicableUseCaseType","description":"Defines the type of use-case for an integration.","x-enumTitles":{"cancel_reschedule":"Appointment Rescheduling or Cancellation","scheduling":"Appointment Scheduling"}},"IntegrationVisitTypes":{"type":"string","enum":["first_time","follow_up"],"title":"IntegrationVisitTypes","description":"Defines gender options for integration","x-enumTitles":{"first_time":"First Time","follow_up":"Follow Up"}},"IntegrationWebSessionFlowType":{"type":"string","enum":["scheduling_flow","insurance_flow","appointment_confirmation_flow","pre_appointment_insurance_flow"],"title":"IntegrationWebSessionFlowType","description":"Defines the type of web session flow.","x-enumTitles":{"appointment_confirmation_flow":"Appointment Confirmation Flow","insurance_flow":"Insurance Flow","pre_appointment_insurance_flow":"Pre-Appointment Insurance Flow","scheduling_flow":"Scheduling Flow"}},"IntegrationWorkingHours":{"properties":{"mon":{"items":{"$ref":"#/components/schemas/WorkingHoursWindow"},"type":"array","title":"Monday","description":"Working-hour windows for Monday.","input_field_helper_text":"Add one or more time windows (e.g., 08:15-11:00 and 13:15-16:00)."},"tue":{"items":{"$ref":"#/components/schemas/WorkingHoursWindow"},"type":"array","title":"Tuesday","description":"Working-hour windows for Tuesday.","input_field_helper_text":"Add one or more time windows."},"wed":{"items":{"$ref":"#/components/schemas/WorkingHoursWindow"},"type":"array","title":"Wednesday","description":"Working-hour windows for Wednesday.","input_field_helper_text":"Add one or more time windows."},"thu":{"items":{"$ref":"#/components/schemas/WorkingHoursWindow"},"type":"array","title":"Thursday","description":"Working-hour windows for Thursday.","input_field_helper_text":"Add one or more time windows."},"fri":{"items":{"$ref":"#/components/schemas/WorkingHoursWindow"},"type":"array","title":"Friday","description":"Working-hour windows for Friday.","input_field_helper_text":"Add one or more time windows."},"sat":{"items":{"$ref":"#/components/schemas/WorkingHoursWindow"},"type":"array","title":"Saturday","description":"Working-hour windows for Saturday.","input_field_helper_text":"Add one or more time windows."},"sun":{"items":{"$ref":"#/components/schemas/WorkingHoursWindow"},"type":"array","title":"Sunday","description":"Working-hour windows for Sunday.","input_field_helper_text":"Add one or more time windows."}},"type":"object","title":"Working Hours Windows List for the day of the week","description":"Simple day->windows configuration.\n\nKeys are weekday short names: mon,tue,wed,thu,fri,sat,sun.\nValues are lists of windows (e.g. [{start:'08:15', end:'11:00'}, ...])."},"IntegrationsBaseConfig":{"properties":{"logicalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Logical ID","description":"Unique identifier for the integration"},"provider":{"anyOf":[{"$ref":"#/components/schemas/IntegrationProviders"},{"type":"null"}],"description":"Integration provider type (e.g., microsoft, google, slack)."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Friendly name for the integration (e.g., 'Google Calendar Sync')."},"status":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"description":"Status of the integration. Defaults to 'active'.","default":"active"},"access":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAccess"},{"type":"null"}],"description":"Access level for the integration (personal, team, or system).","default":"team"},"config":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/IntegrationMicrosoftConfig"},{"$ref":"#/components/schemas/IntegrationAthenaConfig-Input"},{"$ref":"#/components/schemas/IntegrationECWConfig-Input"},{"$ref":"#/components/schemas/IntegrationGoogleConfig"},{"$ref":"#/components/schemas/IntegrationSlackConfig"},{"$ref":"#/components/schemas/IntegrationOktaConfig"}],"discriminator":{"propertyName":"provider","mapping":{"athena":"#/components/schemas/IntegrationAthenaConfig-Input","ecw":"#/components/schemas/IntegrationECWConfig-Input","google":"#/components/schemas/IntegrationGoogleConfig","microsoft":"#/components/schemas/IntegrationMicrosoftConfig","okta":"#/components/schemas/IntegrationOktaConfig","slack":"#/components/schemas/IntegrationSlackConfig"}}},{"type":"null"}],"title":"Config","description":"Provider-specific configuration schema determined by 'provider'."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"IANA timezone string (e.g., 'America/New_York', 'Asia/Kolkata').","default":"UTC"},"flowTemplate":{"anyOf":[{"$ref":"#/components/schemas/IntegrationFlowTemplate-Input"},{"type":"null"}],"description":"Optional flow-behavior template defining non-default slot-fetch, patient/appointment payload, and insurance-notes-routing strategies for this integration. Absent means the integration uses 100% legacy/default behavior at every dispatch point."}},"type":"object","title":"IntegrationsBaseConfig"},"IntegrationsFilters":{"properties":{"provider":{"anyOf":[{"$ref":"#/components/schemas/IntegrationProviders"},{"type":"null"}],"title":"Integration Provider","description":"Integration provider type (e.g., microsoft, google, slack)."},"status":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"title":"Integration Status","description":"Status of the integration. Defaults to 'active'."},"access":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAccess"},{"type":"null"}],"title":"Integration Access Level","description":"Access level for the integration (personal, team, or system).","default":"team"}},"type":"object","title":"IntegrationsFilters"},"IntegrationsModel":{"properties":{"teamId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Teamid","description":"ID of the team that owns this record"},"createdBy":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Createdby","description":"ID of the user who created this record"},"updatedBy":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Updatedby","description":"ID of the user who last updated this record"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"},"_id":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Id","description":"MongoDB document ObjectID"},"logicalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Logical ID","description":"Unique identifier for the integration"},"provider":{"anyOf":[{"$ref":"#/components/schemas/IntegrationProviders"},{"type":"null"}],"description":"Integration provider type (e.g., microsoft, google, slack)."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Friendly name for the integration (e.g., 'Google Calendar Sync')."},"status":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"description":"Status of the integration. Defaults to 'active'.","default":"active"},"access":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAccess"},{"type":"null"}],"description":"Access level for the integration (personal, team, or system).","default":"team"},"config":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/IntegrationMicrosoftConfig"},{"$ref":"#/components/schemas/IntegrationAthenaConfig-Output"},{"$ref":"#/components/schemas/IntegrationECWConfig-Output"},{"$ref":"#/components/schemas/IntegrationGoogleConfig"},{"$ref":"#/components/schemas/IntegrationSlackConfig"},{"$ref":"#/components/schemas/IntegrationOktaConfig"}],"discriminator":{"propertyName":"provider","mapping":{"athena":"#/components/schemas/IntegrationAthenaConfig-Output","ecw":"#/components/schemas/IntegrationECWConfig-Output","google":"#/components/schemas/IntegrationGoogleConfig","microsoft":"#/components/schemas/IntegrationMicrosoftConfig","okta":"#/components/schemas/IntegrationOktaConfig","slack":"#/components/schemas/IntegrationSlackConfig"}}},{"type":"null"}],"title":"Config","description":"Provider-specific configuration schema determined by 'provider'."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"IANA timezone string (e.g., 'America/New_York', 'Asia/Kolkata').","default":"UTC"},"flowTemplate":{"anyOf":[{"$ref":"#/components/schemas/IntegrationFlowTemplate-Output"},{"type":"null"}],"description":"Optional flow-behavior template defining non-default slot-fetch, patient/appointment payload, and insurance-notes-routing strategies for this integration. Absent means the integration uses 100% legacy/default behavior at every dispatch point."}},"type":"object","title":"IntegrationsModel","description":"Main integration model holding configuration and audit details."},"IntegrationsResourceRecordsBaseConfig":{"properties":{"logicalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logical ID","description":"Unique identifier for the integration resource record"},"integrationId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Integration ID","description":"Reference to the associated integration"},"config":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/AthenaResourcesPractitionersConfig-Input"},{"$ref":"#/components/schemas/AthenaResourcesLocationsConfig-Input"},{"$ref":"#/components/schemas/AthenaResourcesVisitingReasonsConfig"},{"$ref":"#/components/schemas/AthenaResourcesPatientsConfig-Input"},{"$ref":"#/components/schemas/AthenaResourcesAppointmentsConfig-Input"},{"$ref":"#/components/schemas/AthenaResourcesAppointmentTypeConfig-Input"},{"$ref":"#/components/schemas/AthenaResourcesVisitStatusConfig"},{"$ref":"#/components/schemas/AthenaResourcesInsurancePayersConfig"},{"$ref":"#/components/schemas/AthenaResourcesOutreachConfig-Input"},{"$ref":"#/components/schemas/ProviderResourcesResourceConfig-Input"}],"discriminator":{"propertyName":"type","mapping":{"appointment_types":"#/components/schemas/AthenaResourcesAppointmentTypeConfig-Input","appointments":"#/components/schemas/AthenaResourcesAppointmentsConfig-Input","insurance_payers":"#/components/schemas/AthenaResourcesInsurancePayersConfig","locations":"#/components/schemas/AthenaResourcesLocationsConfig-Input","outreach":"#/components/schemas/AthenaResourcesOutreachConfig-Input","patients":"#/components/schemas/AthenaResourcesPatientsConfig-Input","practitioners":"#/components/schemas/AthenaResourcesPractitionersConfig-Input","provider_resources":"#/components/schemas/ProviderResourcesResourceConfig-Input","visit_statuses":"#/components/schemas/AthenaResourcesVisitStatusConfig","visiting_reasons":"#/components/schemas/AthenaResourcesVisitingReasonsConfig"}}},{"type":"null"}],"title":"Config","description":"type-specific configuration schema determined by 'type'."}},"type":"object","title":"IntegrationsResourceRecordsBaseConfig"},"IntegrationsResourceRecordsFilters":{"properties":{"integrationId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Integration ID","description":"Reference to the associated integration"},"status":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"title":"Integration Status","description":"Status of the integration. Defaults to 'active'."},"type":{"anyOf":[{"$ref":"#/components/schemas/IntegrationResourceRecordType"},{"type":"null"}],"title":"Resource Record Type","description":"Type of the integration resource record"},"patientStatus":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPatientStatus"},{"type":"null"}],"title":"Patient Status","description":"Status of the patient"},"patientMrnId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient MRN ID","description":"Medical Record Number (MRN) identifier for the patient"},"patientPhoneNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Phone Number","description":"Phone number of the patient"},"patientEmail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Email","description":"Email address of the patient"},"appointmentStatus":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAppointmentStatus"},{"type":"null"}],"title":"Appointment Status","description":"Status of the appointment"},"appointmentAtGte":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Time Greater Than or Equal To","description":"Start time of the appointment in ISO 8601 format"},"appointmentAtLte":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Time Less Than or Equal To","description":"End time of the appointment in ISO 8601 format"},"appointmentType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Type","description":"Type of the appointment"},"paymentMethod":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPaymentMethod"},{"type":"null"}],"title":"Payment Method","description":"Payment method associated with the appointment"},"locationId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location ID","description":"Identifier for the location associated with the appointment"},"practitionerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner ID","description":"Identifier for the practitioner associated with the appointment"},"patientFlowMismatch":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Patient Flow Mismatch","description":"Indicates if there is a patient flow mismatch for the appointment"},"patientCreatedSources":{"items":{"$ref":"#/components/schemas/IntegrationPatientCreatedSource"},"type":"array","title":"Patient Created Sources","description":"Sources of the patient creation"},"appointmentCreatedSources":{"items":{"$ref":"#/components/schemas/IntegrationAppointmentCreatedSource"},"type":"array","title":"Appointment Created Sources","description":"Sources of the appointment creation"},"hasReminders":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Reminders","description":"Indicates if the appointment has reminders set up"},"isInsuranceCardUploaded":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAnswers"},{"type":"null"}],"title":"Insurance Card Uploaded","description":"Indicates if the insurance card has been uploaded"},"isInsuranceCardUploadedToEHR":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAnswers"},{"type":"null"}],"title":"Is Insurance Card Uploaded to EHR","description":"Indicates if the insurance card has been uploaded to the EHR"},"isOcrExtracted":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAnswers"},{"type":"null"}],"title":"Is OCR Extracted","description":"Indicates if OCR extraction has been performed on the uploaded insurance card"},"hasStediResponse":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAnswers"},{"type":"null"}],"title":"Has Stedi Response","description":"Indicates if there is a response from Stedi for insurance verification"},"stediFinalStatus":{"anyOf":[{"$ref":"#/components/schemas/InsuranceStediFinalStatus"},{"type":"null"}],"title":"Stedi Final Status","description":"Final status from Stedi after insurance verification"},"debug":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Debug Mode","description":"If true, includes debug information in the response","default":false}},"type":"object","title":"IntegrationsResourceRecordsFilters"},"IntegrationsResourceRecordsListResponse":{"properties":{"integration_resource_records":{"items":{"$ref":"#/components/schemas/IntegrationsResourceRecordsModel"},"type":"array","title":"Integration Resource Records","description":"List of integrations resource records"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Total number of integrations resource records available without pagination."}},"type":"object","title":"IntegrationsResourceRecordsListResponse","description":"Response model for a list of integrations resource records.\nContains a list of IntegrationsResourceRecordsModel objects."},"IntegrationsResourceRecordsModel":{"properties":{"teamId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Teamid","description":"ID of the team that owns this record"},"createdBy":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Createdby","description":"ID of the user who created this record"},"updatedBy":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Updatedby","description":"ID of the user who last updated this record"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"},"_id":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Id","description":"MongoDB document ObjectID"},"logicalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logical ID","description":"Unique identifier for the integration resource record"},"integrationId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Integration ID","description":"Reference to the associated integration"},"config":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/AthenaResourcesPractitionersConfig-Output"},{"$ref":"#/components/schemas/AthenaResourcesLocationsConfig-Output"},{"$ref":"#/components/schemas/AthenaResourcesVisitingReasonsConfig"},{"$ref":"#/components/schemas/AthenaResourcesPatientsConfig-Output"},{"$ref":"#/components/schemas/AthenaResourcesAppointmentsConfig-Output"},{"$ref":"#/components/schemas/AthenaResourcesAppointmentTypeConfig-Output"},{"$ref":"#/components/schemas/AthenaResourcesVisitStatusConfig"},{"$ref":"#/components/schemas/AthenaResourcesInsurancePayersConfig"},{"$ref":"#/components/schemas/AthenaResourcesOutreachConfig-Output"},{"$ref":"#/components/schemas/ProviderResourcesResourceConfig-Output"}],"discriminator":{"propertyName":"type","mapping":{"appointment_types":"#/components/schemas/AthenaResourcesAppointmentTypeConfig-Output","appointments":"#/components/schemas/AthenaResourcesAppointmentsConfig-Output","insurance_payers":"#/components/schemas/AthenaResourcesInsurancePayersConfig","locations":"#/components/schemas/AthenaResourcesLocationsConfig-Output","outreach":"#/components/schemas/AthenaResourcesOutreachConfig-Output","patients":"#/components/schemas/AthenaResourcesPatientsConfig-Output","practitioners":"#/components/schemas/AthenaResourcesPractitionersConfig-Output","provider_resources":"#/components/schemas/ProviderResourcesResourceConfig-Output","visit_statuses":"#/components/schemas/AthenaResourcesVisitStatusConfig","visiting_reasons":"#/components/schemas/AthenaResourcesVisitingReasonsConfig"}}},{"type":"null"}],"title":"Config","description":"type-specific configuration schema determined by 'type'."}},"additionalProperties":true,"type":"object","title":"IntegrationsResourceRecordsModel","description":"Main integration model holding configuration and audit details."},"IntegrationsResourceRecordsResponse":{"properties":{"integration_resource_record":{"$ref":"#/components/schemas/IntegrationsResourceRecordsModel","description":"Single integration resource record object"}},"type":"object","required":["integration_resource_record"],"title":"IntegrationsResourceRecordsResponse","description":"Response model for a single integration resource record.\nContains a IntegrationsResourceRecordsModel object."},"IntegrationsResponse":{"properties":{"integration":{"$ref":"#/components/schemas/IntegrationsModel","description":"Single integration object"}},"type":"object","required":["integration"],"title":"IntegrationsResponse","description":"Response model for a single integration.\nContains a IntegrationsModel object."},"IntegrationsUseCasesBaseConfig":{"properties":{"logicalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logical ID","description":"Unique identifier for the integration use-case"},"integrationId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Integration ID","description":"Reference to the associated integration"},"schedulerNames":{"items":{"type":"string"},"type":"array","title":"Schedulernames","description":"List of associated scheduler names"},"config":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/AppointmentReminderWithSheetUseCaseConfig-Input"},{"$ref":"#/components/schemas/LabReminderWithSheetUseCaseConfig-Input"},{"$ref":"#/components/schemas/AppointmentReminderUseCaseConfig-Input"},{"$ref":"#/components/schemas/FinalAppointmentNotificationUseCaseConfig-Input"},{"$ref":"#/components/schemas/LabReminderUseCaseConfig-Input"},{"$ref":"#/components/schemas/AppointmentSchedulingUseCaseConfig-Input"},{"$ref":"#/components/schemas/AppointmentCancellationUseCaseConfig-Input"},{"$ref":"#/components/schemas/AppointmentReschedulingUseCaseConfig-Input"},{"$ref":"#/components/schemas/AppointmentSchedulingWithWaitlistUseCaseConfig-Input"},{"$ref":"#/components/schemas/MedicationRefillUseCaseConfig-Input"},{"$ref":"#/components/schemas/InvoiceBillingUseCaseConfig-Input"},{"$ref":"#/components/schemas/WebSchedulingUseCaseConfig-Input"},{"$ref":"#/components/schemas/InsuranceReminderUseCaseConfig-Input"},{"$ref":"#/components/schemas/AppointmentEnquiryUseCaseConfig-Input"}],"discriminator":{"propertyName":"type","mapping":{"appointment_cancellation":"#/components/schemas/AppointmentCancellationUseCaseConfig-Input","appointment_enquiry":"#/components/schemas/AppointmentEnquiryUseCaseConfig-Input","appointment_reminder":"#/components/schemas/AppointmentReminderUseCaseConfig-Input","appointment_reminder_with_sheet":"#/components/schemas/AppointmentReminderWithSheetUseCaseConfig-Input","appointment_rescheduling":"#/components/schemas/AppointmentReschedulingUseCaseConfig-Input","appointment_scheduling":"#/components/schemas/AppointmentSchedulingUseCaseConfig-Input","appointment_scheduling_with_waitlist":"#/components/schemas/AppointmentSchedulingWithWaitlistUseCaseConfig-Input","final_appointment_notification":"#/components/schemas/FinalAppointmentNotificationUseCaseConfig-Input","insurance_reminder":"#/components/schemas/InsuranceReminderUseCaseConfig-Input","invoice_enquiry":"#/components/schemas/InvoiceBillingUseCaseConfig-Input","lab_reminder":"#/components/schemas/LabReminderUseCaseConfig-Input","lab_reminder_with_sheet":"#/components/schemas/LabReminderWithSheetUseCaseConfig-Input","medication_refill":"#/components/schemas/MedicationRefillUseCaseConfig-Input","web_scheduling":"#/components/schemas/WebSchedulingUseCaseConfig-Input"}}},{"type":"null"}],"title":"Config","description":"type-specific configuration schema determined by 'type'."}},"type":"object","title":"IntegrationsUseCasesBaseConfig"},"IntegrationsUseCasesFilters":{"properties":{"integrationId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Integration ID","description":"Reference to the associated integration"},"status":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"title":"Use Case Status","description":"Status of the use case. Defaults to 'active'."},"type":{"anyOf":[{"$ref":"#/components/schemas/IntegrationUseCaseType"},{"type":"null"}],"title":"Use Case Type","description":"Type of the integration use case"}},"type":"object","title":"IntegrationsUseCasesFilters"},"IntegrationsUseCasesListResponse":{"properties":{"integration":{"anyOf":[{"$ref":"#/components/schemas/IntegrationsModel"},{"type":"null"}],"description":"Integration object associated with use cases and team"},"integration_use_cases":{"items":{"$ref":"#/components/schemas/IntegrationsUseCasesModel"},"type":"array","title":"Integration Use Cases","description":"List of integrations use cases"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Total number of integrations use cases available without pagination."}},"type":"object","title":"IntegrationsUseCasesListResponse","description":"Response model for a list of integrations use cases.\nContains a list of IntegrationsUseCasesModel objects."},"IntegrationsUseCasesModel":{"properties":{"teamId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Teamid","description":"ID of the team that owns this record"},"createdBy":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Createdby","description":"ID of the user who created this record"},"updatedBy":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Updatedby","description":"ID of the user who last updated this record"},"createdAt":{"type":"string","format":"date-time","title":"Createdat"},"updatedAt":{"type":"string","format":"date-time","title":"Updatedat"},"_id":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Id","description":"MongoDB document ObjectID"},"logicalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logical ID","description":"Unique identifier for the integration use-case"},"integrationId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Integration ID","description":"Reference to the associated integration"},"schedulerNames":{"items":{"type":"string"},"type":"array","title":"Schedulernames","description":"List of associated scheduler names"},"config":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/AppointmentReminderWithSheetUseCaseConfig-Output"},{"$ref":"#/components/schemas/LabReminderWithSheetUseCaseConfig-Output"},{"$ref":"#/components/schemas/AppointmentReminderUseCaseConfig-Output"},{"$ref":"#/components/schemas/FinalAppointmentNotificationUseCaseConfig-Output"},{"$ref":"#/components/schemas/LabReminderUseCaseConfig-Output"},{"$ref":"#/components/schemas/AppointmentSchedulingUseCaseConfig-Output"},{"$ref":"#/components/schemas/AppointmentCancellationUseCaseConfig-Output"},{"$ref":"#/components/schemas/AppointmentReschedulingUseCaseConfig-Output"},{"$ref":"#/components/schemas/AppointmentSchedulingWithWaitlistUseCaseConfig-Output"},{"$ref":"#/components/schemas/MedicationRefillUseCaseConfig-Output"},{"$ref":"#/components/schemas/InvoiceBillingUseCaseConfig-Output"},{"$ref":"#/components/schemas/WebSchedulingUseCaseConfig-Output"},{"$ref":"#/components/schemas/InsuranceReminderUseCaseConfig-Output"},{"$ref":"#/components/schemas/AppointmentEnquiryUseCaseConfig-Output"}],"discriminator":{"propertyName":"type","mapping":{"appointment_cancellation":"#/components/schemas/AppointmentCancellationUseCaseConfig-Output","appointment_enquiry":"#/components/schemas/AppointmentEnquiryUseCaseConfig-Output","appointment_reminder":"#/components/schemas/AppointmentReminderUseCaseConfig-Output","appointment_reminder_with_sheet":"#/components/schemas/AppointmentReminderWithSheetUseCaseConfig-Output","appointment_rescheduling":"#/components/schemas/AppointmentReschedulingUseCaseConfig-Output","appointment_scheduling":"#/components/schemas/AppointmentSchedulingUseCaseConfig-Output","appointment_scheduling_with_waitlist":"#/components/schemas/AppointmentSchedulingWithWaitlistUseCaseConfig-Output","final_appointment_notification":"#/components/schemas/FinalAppointmentNotificationUseCaseConfig-Output","insurance_reminder":"#/components/schemas/InsuranceReminderUseCaseConfig-Output","invoice_enquiry":"#/components/schemas/InvoiceBillingUseCaseConfig-Output","lab_reminder":"#/components/schemas/LabReminderUseCaseConfig-Output","lab_reminder_with_sheet":"#/components/schemas/LabReminderWithSheetUseCaseConfig-Output","medication_refill":"#/components/schemas/MedicationRefillUseCaseConfig-Output","web_scheduling":"#/components/schemas/WebSchedulingUseCaseConfig-Output"}}},{"type":"null"}],"title":"Config","description":"type-specific configuration schema determined by 'type'."}},"type":"object","title":"IntegrationsUseCasesModel","description":"Main integration model holding configuration and audit details."},"IntegrationsUseCasesResponse":{"properties":{"integration_use_case":{"$ref":"#/components/schemas/IntegrationsUseCasesModel","description":"Single integration use case object"}},"type":"object","required":["integration_use_case"],"title":"IntegrationsUseCasesResponse","description":"Response model for a single integration use case.\nContains a IntegrationsUseCasesModel object."},"InvoiceBillingUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"invoice_enquiry","title":"Type","description":"Type of the use-case. Must be 'invoice_enquiry'","default":"invoice_enquiry","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Invoice and billing notifications","default":"Invoice Billing","input_field_not_visible":true}},"type":"object","title":"Invoice Billing Use Case Configuration"},"InvoiceBillingUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"invoice_enquiry","title":"Type","description":"Type of the use-case. Must be 'invoice_enquiry'","default":"invoice_enquiry","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Invoice and billing notifications","default":"Invoice Billing","input_field_not_visible":true}},"type":"object","title":"Invoice Billing Use Case Configuration"},"LabReminderUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"lab_reminder","title":"Type","description":"Type of the use-case. Must be 'lab_reminder'","default":"lab_reminder","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for lab results availability","default":"Lab Reminder","input_field_not_visible":true},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case"}},"type":"object","title":"Lab Reminder Use Case Configuration"},"LabReminderUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"lab_reminder","title":"Type","description":"Type of the use-case. Must be 'lab_reminder'","default":"lab_reminder","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for lab results availability","default":"Lab Reminder","input_field_not_visible":true},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case"}},"type":"object","title":"Lab Reminder Use Case Configuration"},"LabReminderWithSheetUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"lab_reminder_with_sheet","title":"Type","description":"Type of the use-case. Must be 'lab_reminder_with_sheet'","default":"lab_reminder_with_sheet","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for lab results availability","default":"Lab Reminder","input_field_not_visible":true},"sheetLink":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lab Results Data Sheet Link","description":"Link to the lab results data sheet","input_field_type":"external_url_link"},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case"}},"type":"object","title":"Lab Reminder With Sheet Use Case Configuration"},"LabReminderWithSheetUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"lab_reminder_with_sheet","title":"Type","description":"Type of the use-case. Must be 'lab_reminder_with_sheet'","default":"lab_reminder_with_sheet","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Notifications for lab results availability","default":"Lab Reminder","input_field_not_visible":true},"sheetLink":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lab Results Data Sheet Link","description":"Link to the lab results data sheet","input_field_type":"external_url_link"},"actions":{"items":{"$ref":"#/components/schemas/UseCasesActionsConfig"},"type":"array","title":"Actions","description":"List of actions associated with the use-case"}},"type":"object","title":"Lab Reminder With Sheet Use Case Configuration"},"MedicationRefillUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"medication_refill","title":"Type","description":"Type of the use-case. Must be 'medication_refill'","default":"medication_refill","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Medication refills","default":"Medication Refill","input_field_not_visible":true}},"type":"object","title":"Medication Refill Use Case Configuration"},"MedicationRefillUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"medication_refill","title":"Type","description":"Type of the use-case. Must be 'medication_refill'","default":"medication_refill","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Medication refills","default":"Medication Refill","input_field_not_visible":true}},"type":"object","title":"Medication Refill Use Case Configuration"},"OneTimeTriggerRule":{"properties":{"startDateTime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date","description":"Start date for the schedule in ISO 8601 format. If not provided, the schedule starts immediately.","input_field_helper_text":"Enter the start date and time for the schedule in ISO 8601 format. For example, '2023-10-01T12:00:00Z' for October 1, 2023, at 12:00 PM UTC.","input_field_type":"datetime_iso8601"},"endDateTime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date","description":"End date for the schedule in ISO 8601 format. If not provided, the schedule runs indefinitely until manually stopped.","input_field_helper_text":"Enter the end date and time for the schedule in ISO 8601 format. For example, '2023-10-01T12:00:00Z' for October 1, 2023, at 12:00 PM UTC.","input_field_type":"datetime_iso8601"},"field":{"type":"string","const":"oneTime","title":"Field","description":"Field indicating the type of trigger","default":"oneTime","input_field_not_visible":true},"triggerAt":{"type":"string","format":"date-time","title":"Trigger at","description":"Date and time to trigger the event in ISO 8601 format.","input_field_helper_text":"Enter the date and time when the trigger should run. For example, '2023-10-01T12:00:00Z' for October 1, 2023, at 12:00 PM UTC.","input_field_type":"datetime_iso8601"}},"type":"object","title":"One Time Trigger"},"PastAnalysisResponse":{"properties":{"past_runs":{"items":{"$ref":"#/components/schemas/PastRunRecord"},"type":"array","title":"Past Runs"},"past_final_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Past Final Status"}},"type":"object","required":["past_runs","past_final_status"],"title":"PastAnalysisResponse"},"PastRunRecord":{"properties":{"action_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Type"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"payload":{"additionalProperties":true,"type":"object","title":"Payload","default":{}},"createdAt":{"anyOf":[{},{"type":"null"}],"title":"Createdat"}},"type":"object","required":["action_type","status","notes","createdAt"],"title":"PastRunRecord"},"PatientAppointment":{"properties":{"appointmentId":{"type":"string","title":"Appointmentid","description":"Appointment identifier from the EHR.","default":""},"locationName":{"type":"string","title":"Locationname","description":"Display name of the appointment location, if available.","default":""},"practitionerName":{"type":"string","title":"Practitionername","description":"Display name of the practitioner for this appointment, if available.","default":""},"locationId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locationid","description":"Display ID of the appointment location, if available."},"locationDetails":{"anyOf":[{"$ref":"#/components/schemas/AthenaResourcesLocationsConfig-Output"},{"type":"null"}],"description":"Structured details of the appointment clinic location, if available."},"practitionerId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitionerid","description":"Display ID of the practitioner for this appointment, if available."},"practitionerDetails":{"anyOf":[{"$ref":"#/components/schemas/AthenaResourcesPractitionersConfig-Output"},{"type":"null"}],"description":"Structured details of the practitioner for this appointment."},"resourceProvider":{"type":"string","title":"Resourceprovider","description":"Display name of the eCW generic scheduling-resource actor for this appointment (e.g. FIN's provider_resources), if present — distinct from practitionerName, since both a generic resource and a real supervising Practitioner can appear on the same appointment.","default":""},"resourceProviderId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resourceproviderid","description":"Id of the eCW generic scheduling-resource actor for this appointment, if present. Reschedule/cancel/confirm need THIS id (not practitionerId) to target the resource that was actually booked, when one is present."},"patientId":{"type":"string","title":"Patientid","description":"Patient identifier from the request context.","default":""},"mrnId":{"type":"string","title":"Mrnid","description":"MRN identifier from the request context.","default":""},"start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start","description":"ISO 8601 start datetime of the appointment as returned by the EHR."},"end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End","description":"ISO 8601 end datetime of the appointment as returned by the EHR."},"appointmentType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointmenttype","description":"Raw appointment type code or text as returned by the EHR (e.g., 'NP' for new patient)."},"appointmentTypeCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointmenttypecode","description":"Appointment code associdated with appointment Type"},"visitReason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visitreason","description":"Human-readable visit reason derived from Appointment.reasonCode."},"visitStatus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visitstatus","description":"Encounter status from the EHR indicating the visit status (e.g., 'cancelled', 'pending')."},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Raw appointment status as returned by the EHR (e.g., booked, cancelled)."}},"type":"object","title":"PatientAppointment","description":"Normalized appointment representation for /identify-patient endpoint."},"PatientCreateRequest":{"properties":{"location_id":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Location Id","description":"Numeric identifier of the location in which the patient should be registered."},"pcg_id":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Pcg Id","description":"Identifier of the resource/practitioner the appointment was booked with (e.g. from find_slots' matched slot). Resolved via a DB lookup and used to set both the pcp/pcpId extension and (unless a linked practitioner is configured on the resource) the pcgProvider/pcgProviderId extension - the display name is looked up from the DB record, never hardcoded."},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","description":"Patient's legal first name, used for the FHIR Patient resource."},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","description":"Patient's legal last name, used for the FHIR Patient resource."},"patient_mrn_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient MRN ID","description":"Medical Record Number (MRN) identifier for the patient in the EHR system"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number","description":"Primary contact number for the patient."},"birth_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date","description":"Patient birth date encoded as YYYY-MM-DD to satisfy FHIR requirements."},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender","description":"Patient gender, used for the FHIR Patient resource."},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Primary email address for the patient."},"address":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAddress"},{"type":"null"}],"description":"Structured postal address for the patient."},"notification_preferences":{"anyOf":[{"$ref":"#/components/schemas/PatientNotificationPreferences"},{"type":"null"}],"description":"Patient's communication preferences for notifications."},"pcp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pcp","description":"Primary Care Provider name for the patient. When omitted, the EHR gateway falls back to a TBD placeholder and logs a warning."},"pcp_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pcp Id","description":"Primary Care Provider EHR identifier for the patient. When omitted, the EHR gateway falls back to a TBD placeholder id and logs a warning."},"rp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rp","description":"Referring Provider name for the patient"},"rp_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rp Id","description":"Referring Provider EHR identifier for the patient. When omitted, the EHR gateway falls back to a TBD placeholder id and logs a warning."},"payment_method":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPaymentMethod"},{"type":"null"}],"description":"Preferred payment method for the patient."},"insurance":{"anyOf":[{"$ref":"#/components/schemas/PatientInsurance"},{"type":"null"}],"description":"Insurance information associated with the patient."},"demographics":{"anyOf":[{"$ref":"#/components/schemas/Demographics"},{"type":"null"}],"description":"Additional demographic details for the patient, such as race, ethnicity, and language."}},"type":"object","title":"PatientCreateRequest","description":"Request payload for creating a patient record in the EHR session flow."},"PatientDetails":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Name","description":"Display name of the patient (usually 'First Last')."},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","description":"Patient's legal first name, used for the FHIR Patient resource."},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","description":"Patient's legal last name, used for the FHIR Patient resource."},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number","description":"Primary contact phone number of the patient."},"visit_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason","description":"High-level reason for the visit."},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Primary email address of the patient."},"patient_mrn_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient MRN ID","description":"Medical Record Number (MRN) identifier for the patient in the EHR system"},"birth_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date","description":"Patient birth date encoded as YYYY-MM-DD to satisfy FHIR requirements."},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Gender","description":"Patient gender, used for the FHIR Patient resource."}},"type":"object","title":"Patient Details","description":"Lightweight details about the patient used when creating an appointment.\n\nThis is intentionally denormalized from the full patient record and is\nmeant to capture just the information needed by the scheduling flow\nand external EHR appointment APIs."},"PatientInsurance":{"properties":{"primary_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Provider","description":"Primary insurance provider name"},"member_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Member ID","description":"Insurance member ID"},"group_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Number","description":"Insurance group number"},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Phone Number","description":"Phone number of the provider"}},"type":"object","title":"Patient Insurance"},"PatientNotificationPreferences":{"properties":{"phone":{"type":"boolean","title":"Phone","description":"Patient opted for Phone calls","default":false},"sms":{"type":"boolean","title":"SMS","description":"Patient opted for SMS messages","default":false},"email":{"type":"boolean","title":"Email","description":"Patient opted for Emails","default":true}},"type":"object","title":"Notification Preferences","description":"Structured notification preferences for a patient used across request and response models."},"PatientPayloadStrategy":{"type":"string","enum":["location_practitioner_v1","provider_resource_v1"],"title":"PatientPayloadStrategy","description":"How the eCW Patient-creation payload resolves its facility/pcg-provider actors."},"PatientSummary":{"properties":{"id":{"type":"string","title":"Id","description":"Patient identifier from the EHR."},"mrnId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mrnid","description":"Medical record patient identifier from the EHR."},"birthDate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birthdate","description":"Patient date of birth (YYYY-MM-DD)."},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firstname","description":"Patient first name."},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lastname","description":"Patient last name."},"phoneNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phonenumber","description":"Primary phone number."},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Primary email address."},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender","description":"Patient gender, as returned or inferred from EHR."},"notificationPreferences":{"anyOf":[{"$ref":"#/components/schemas/PatientNotificationPreferences"},{"type":"null"}],"description":"Notification preferences for the patient (e.g., channels, consent flags)."},"address":{"anyOf":[{"$ref":"#/components/schemas/IntegrationAddress"},{"type":"null"}],"description":"Structured address information for the patient."},"pcp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pcp","description":"Primary care provider name or identifier."},"rp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rp","description":"Responsible party or related person info."},"demographics":{"anyOf":[{"$ref":"#/components/schemas/Demographics"},{"type":"null"}],"description":"Additional demographic details for the patient, such as race, ethnicity, and language."},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score","description":"Local match confidence in [0, 1] from the name-similarity scorer. Set only when name comparison ran; absent for short-circuited matches (single candidate, unique phone hit, no identifiers supplied)."}},"type":"object","required":["id"],"title":"PatientSummary","description":"Normalized patient representation returned from /patient/search."},"PatientsSearchResponse":{"properties":{"total":{"type":"integer","title":"Total","description":"Total number of matching patient records."},"patients":{"items":{"$ref":"#/components/schemas/PatientSummary"},"type":"array","title":"Patients","description":"List of normalized patient summaries."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Optional message providing additional context about the Patient Search operation."}},"type":"object","required":["total"],"title":"PatientsSearchResponse","description":"Response wrapper for patient search results with normalized patient summaries."},"PatientsStatsResponse":{"properties":{"overview":{"$ref":"#/components/schemas/StatsOverview","title":"Patients Overview","description":"Overview of total patients in the date range"},"trends":{"items":{"$ref":"#/components/schemas/StatsTrend"},"type":"array","title":"Patients Trends","description":"List of patient trends broken down by date, showing successful and failed counts"},"source":{"items":{"$ref":"#/components/schemas/StatsSource"},"type":"array","title":"Patients Sources","description":"List of patient sources with counts, showing where patients originated"}},"type":"object","required":["overview"],"title":"PatientsStatsResponse","description":"Response model for patients dashboard data.\nContains overview, trends, and source information for patients."},"PreAppointmentInsuranceOutreachRequest":{"properties":{"patient_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Id","description":"Identifier of the patient in the EHR system. Omit only when skip_card_upload is enabled for this use case's insurance flow settings."},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name","description":"Patient's first name. Used only to seed a placeholder patient record when patient_id is omitted; ignored otherwise."},"last_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Name","description":"Patient's last name. Used only to seed a placeholder patient record when patient_id is omitted; ignored otherwise."},"birth_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date","description":"Patient birth date (YYYY-MM-DD). Used only to seed a placeholder patient record when patient_id is omitted; ignored otherwise."},"phone_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number","description":"Patient's phone number. Used to deliver the outreach link and seed a placeholder patient record when patient_id is omitted; ignored otherwise. At least one of phone_number or email is required to send outreach without a patient_id."},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Patient's email address. Used to deliver the outreach link and seed a placeholder patient record when patient_id is omitted; ignored otherwise. At least one of phone_number or email is required to send outreach without a patient_id."},"location_id":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"title":"Location Id","description":"Numeric identifier of the location the patient is registered under. Optional — the location may not be decided yet this early in the call; location-specific behavior (allowed-locations filtering, coverage creation) is skipped when omitted."},"payment_method":{"$ref":"#/components/schemas/IntegrationPaymentMethod","description":"Patient's selected payment method. Outreach is only sent for insurance-based payment methods (e.g. commercial_insurance, medicare, medicaid) — not self_pay."},"timeout_seconds":{"type":"integer","maximum":1800,"minimum":30,"title":"Timeout Seconds","description":"How long to wait for the patient to complete the web-link flow before reporting a timeout back to the live call via call control, if they haven't. Defaults to 3 minutes. Has no effect once the patient actually finishes (or the call ends).","default":180}},"type":"object","required":["payment_method"],"title":"PreAppointmentInsuranceOutreachRequest","description":"Request payload to initiate insurance-collection outreach for a patient before an\nappointment has been booked. location_id and payment_method are supplied by the caller since\nneither can be resolved from an appointment (none exists yet).\n\npatient_id is optional: omit it when the use case's insurance flow settings have\nskip_card_upload enabled, in which case a placeholder patient record (keyed by the live\nconversation) is created and reconciled with a real EHR patient later. location_id is also\noptional, independently of patient_id, since the location may not be decided yet either."},"ProviderResourcesResourceConfig-Input":{"properties":{"type":{"type":"string","const":"provider_resources","title":"Type of Resource Record","description":"Type of the resource record. Must be 'provider_resources'","default":"provider_resources","input_field_not_visible":true},"resourceId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduling Resource ID","description":"Raw eCW FHIR actor id, e.g. 'fin--fin-ecw-prod--25780'. Used verbatim as 'Practitioner/{resourceId}' in Slot search and Appointment participant."},"resourceName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"eCW Resource Name","description":"eCW's own generic label for this scheduling resource (e.g. 'Provider 1', 'Provider 2', 'Oviedo Provider', 'St Cloud Procedures'), as documented in the clinic's provider mapping sheet. Distinct from employeeName: this is eCW-side and often reused across different real people/locations, not a reliable identity by itself — kept for traceability back to the source mapping doc, not for display to patients."},"employeeName":{"type":"string","title":"Employee Name","description":"Required patient-facing name of the employee assigned to this scheduling resource. eCW's own label (e.g. 'Provider 1') is a meaningless generic string reused across different real people/locations, so this field is authoritative. Existing practitionerName values are read as employeeName for backward compatibility and are written back under employeeName."},"linkedPractitionerId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Linked Practitioner Record","description":"Optional link to a real PRACTITIONERS resource record, for clinics where eCW's practitioner identity is meaningful (e.g. shared NPI lookups).","input_field_helper_text":"Optional. Select a linked practitioner record if one exists.","input_field_type":"practitioners_selection"},"locations":{"items":{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},"type":"array","title":"Locations","description":"Default/display location(s) for this resource - resource-record ids (`_id`) into the existing LOCATIONS collection, matching the same id convention as `linkedPractitionerId` and every other INTEGRATIONS_LOCATIONS_SELECTION field (e.g. IntegrationInsuranceFlowSettings.allowed_locations). Informational only - the actual per-booking location for a fetched slot is discovered live from the FHIR response, not from this field, so day-of-week rotation does not need to be modeled here.","input_field_type":"integrations_locations_selection"},"workingHours":{"anyOf":[{"$ref":"#/components/schemas/IntegrationWorkingHours"},{"type":"null"}],"title":"Working Hours","description":"Optional day-wise working hours configuration. Keys are mon..sun and values are windows with 'start'/'end' in HH:MM (24h) format."},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of this resource record. Provider resources are manually maintained, not synced.","default":"by_interactly"}},"type":"object","required":["employeeName"],"title":"Provider Resources","description":"Configuration for eCW 'generic scheduling resource' records.\n\nSome eCW deployments (e.g. FIN) never expose real per-practitioner Location/Practitioner\nFHIR resources for scheduling — instead there are a handful of generic scheduling-resource\nids (e.g. 'fin--fin-ecw-prod--25780') that must be queried directly as the sole FHIR actor.\neCW's own display label for these (\"Provider 1\", \"Provider 2\", ...) is meaningless and is\nreused across different real people at different locations, so the real practitioner\nidentity is authoritatively maintained here as free text, with an optional link to a real\nPRACTITIONERS record for clinics where that link is meaningful."},"ProviderResourcesResourceConfig-Output":{"properties":{"type":{"type":"string","const":"provider_resources","title":"Type of Resource Record","description":"Type of the resource record. Must be 'provider_resources'","default":"provider_resources","input_field_not_visible":true},"resourceId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheduling Resource ID","description":"Raw eCW FHIR actor id, e.g. 'fin--fin-ecw-prod--25780'. Used verbatim as 'Practitioner/{resourceId}' in Slot search and Appointment participant."},"resourceName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"eCW Resource Name","description":"eCW's own generic label for this scheduling resource (e.g. 'Provider 1', 'Provider 2', 'Oviedo Provider', 'St Cloud Procedures'), as documented in the clinic's provider mapping sheet. Distinct from employeeName: this is eCW-side and often reused across different real people/locations, not a reliable identity by itself — kept for traceability back to the source mapping doc, not for display to patients."},"employeeName":{"type":"string","title":"Employee Name","description":"Required patient-facing name of the employee assigned to this scheduling resource. eCW's own label (e.g. 'Provider 1') is a meaningless generic string reused across different real people/locations, so this field is authoritative. Existing practitionerName values are read as employeeName for backward compatibility and are written back under employeeName."},"linkedPractitionerId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Linked Practitioner Record","description":"Optional link to a real PRACTITIONERS resource record, for clinics where eCW's practitioner identity is meaningful (e.g. shared NPI lookups).","input_field_helper_text":"Optional. Select a linked practitioner record if one exists.","input_field_type":"practitioners_selection"},"locations":{"items":{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},"type":"array","title":"Locations","description":"Default/display location(s) for this resource - resource-record ids (`_id`) into the existing LOCATIONS collection, matching the same id convention as `linkedPractitionerId` and every other INTEGRATIONS_LOCATIONS_SELECTION field (e.g. IntegrationInsuranceFlowSettings.allowed_locations). Informational only - the actual per-booking location for a fetched slot is discovered live from the FHIR response, not from this field, so day-of-week rotation does not need to be modeled here.","input_field_type":"integrations_locations_selection"},"workingHours":{"anyOf":[{"$ref":"#/components/schemas/IntegrationWorkingHours"},{"type":"null"}],"title":"Working Hours","description":"Optional day-wise working hours configuration. Keys are mon..sun and values are windows with 'start'/'end' in HH:MM (24h) format."},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the resource record","default":"active","input_field_helper_text":"Select inactive to disable this resource record without deleting it."},"recordSource":{"anyOf":[{"$ref":"#/components/schemas/IntegrationRecordSource"},{"type":"null"}],"title":"Record Source","description":"Source of this resource record. Provider resources are manually maintained, not synced.","default":"by_interactly"}},"type":"object","required":["employeeName"],"title":"Provider Resources","description":"Configuration for eCW 'generic scheduling resource' records.\n\nSome eCW deployments (e.g. FIN) never expose real per-practitioner Location/Practitioner\nFHIR resources for scheduling — instead there are a handful of generic scheduling-resource\nids (e.g. 'fin--fin-ecw-prod--25780') that must be queried directly as the sole FHIR actor.\neCW's own display label for these (\"Provider 1\", \"Provider 2\", ...) is meaningless and is\nreused across different real people at different locations, so the real practitioner\nidentity is authoritatively maintained here as free text, with an optional link to a real\nPRACTITIONERS record for clinics where that link is meaningful."},"SearchPractitionerRequest":{"properties":{"practitioner_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Practitioner Id","description":"Identifier of the practitioner to be searched."},"location_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Id","description":"Location identifier where the practitioner will be searched."}},"type":"object","title":"SearchPractitionerRequest","description":"Request payload for searching a practitioner in the EHR session flow."},"SlotCapacityRuleConfig-Input":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Off by default. A resource/integration with no rule enabled is a no-op — identical to today's behavior, never new permissiveness.","default":false},"scope":{"type":"string","enum":["resource","location"],"title":"Occupancy Scope","description":"'resource': occupancy is counted only against this resource's own appointments (matches the FHIR Slot model, which is inherently per-practitioner). 'location': occupancy is pooled across every resource sharing the same location — only enable this with explicit client sign-off, since it is not addressed by FIN's confirmed rule.","default":"resource"},"maxOccupantsPerSlot":{"type":"integer","title":"Max Occupants Per Slot","description":"Maximum total appointments allowed to overlap the same candidate window, regardless of type mix. FIN confirmed value: 2.","default":1},"perTypeRules":{"items":{"$ref":"#/components/schemas/AppointmentTypeSlotRule-Input"},"type":"array","title":"Per-Appointment-Type Rules","description":"Capacity/compatibility rule per appointment type (matched against an AppointmentType resource record's `appointmentType` value, e.g. 'NP', 'F/U'). Every appointment type an integration uses for scheduling should have an entry here so the capacity rule can be enforced correctly for that type — an appointment type with no entry falls back to `unclassifiedTypeExcludedWithAll`."},"unclassifiedTypeExcludedWithAll":{"type":"boolean","title":"Treat Unclassified Appointment Types As Incompatible With Everything","description":"Fail-closed default: if an occupant's or candidate's appointment type can't be matched to an entry in perTypeRules, treat it as incompatible with every other occupant (including another unclassified one) rather than silently allowing an unclassified pairing. Does not affect maxOccupantsPerSlot, which always applies.","default":true},"excludedVisitStatusCodes":{"items":{"type":"string"},"type":"array","title":"Excluded Visit Status Codes","description":"Occupant visit-status codes that don't count toward occupancy (e.g. cancelled/no-show appointments free the slot)."},"parentSlotMinutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Slot Minutes","description":"Alignment granularity (e.g. 30) used to group candidates into a nominal block for any type with `blocksEntireParentSlot=True`. Required for that flag to have any effect; leave unset if no type in perTypeRules sets it."},"adjacencyRules":{"items":{"$ref":"#/components/schemas/AdjacencyGapRule-Input"},"type":"array","title":"Adjacency Gap Rules","description":"Minimum-gap rules between appointment types in different, non-overlapping blocks (e.g. no back-to-back New Patients). See AdjacencyGapRule."},"occupancyFetchStrategy":{"$ref":"#/components/schemas/SlotOccupancyFetchStrategy","title":"Occupancy Fetch Strategy","description":"How already-booked appointments are fetched to compute occupancy. See SlotOccupancyFetchStrategy.","default":"location_v1"}},"type":"object","title":"Scheduling Capacity Rule","description":"Declarative capacity/exclusion rule for how many appointments may occupy the same\nnominal calendar slot. Flat, explicit fields only — not a rule DSL — so it stays\nhand-authorable per integration/template."},"SlotCapacityRuleConfig-Output":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Off by default. A resource/integration with no rule enabled is a no-op — identical to today's behavior, never new permissiveness.","default":false},"scope":{"type":"string","enum":["resource","location"],"title":"Occupancy Scope","description":"'resource': occupancy is counted only against this resource's own appointments (matches the FHIR Slot model, which is inherently per-practitioner). 'location': occupancy is pooled across every resource sharing the same location — only enable this with explicit client sign-off, since it is not addressed by FIN's confirmed rule.","default":"resource"},"maxOccupantsPerSlot":{"type":"integer","title":"Max Occupants Per Slot","description":"Maximum total appointments allowed to overlap the same candidate window, regardless of type mix. FIN confirmed value: 2.","default":1},"perTypeRules":{"items":{"$ref":"#/components/schemas/AppointmentTypeSlotRule-Output"},"type":"array","title":"Per-Appointment-Type Rules","description":"Capacity/compatibility rule per appointment type (matched against an AppointmentType resource record's `appointmentType` value, e.g. 'NP', 'F/U'). Every appointment type an integration uses for scheduling should have an entry here so the capacity rule can be enforced correctly for that type — an appointment type with no entry falls back to `unclassifiedTypeExcludedWithAll`."},"unclassifiedTypeExcludedWithAll":{"type":"boolean","title":"Treat Unclassified Appointment Types As Incompatible With Everything","description":"Fail-closed default: if an occupant's or candidate's appointment type can't be matched to an entry in perTypeRules, treat it as incompatible with every other occupant (including another unclassified one) rather than silently allowing an unclassified pairing. Does not affect maxOccupantsPerSlot, which always applies.","default":true},"excludedVisitStatusCodes":{"items":{"type":"string"},"type":"array","title":"Excluded Visit Status Codes","description":"Occupant visit-status codes that don't count toward occupancy (e.g. cancelled/no-show appointments free the slot)."},"parentSlotMinutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Parent Slot Minutes","description":"Alignment granularity (e.g. 30) used to group candidates into a nominal block for any type with `blocksEntireParentSlot=True`. Required for that flag to have any effect; leave unset if no type in perTypeRules sets it."},"adjacencyRules":{"items":{"$ref":"#/components/schemas/AdjacencyGapRule-Output"},"type":"array","title":"Adjacency Gap Rules","description":"Minimum-gap rules between appointment types in different, non-overlapping blocks (e.g. no back-to-back New Patients). See AdjacencyGapRule."},"occupancyFetchStrategy":{"$ref":"#/components/schemas/SlotOccupancyFetchStrategy","title":"Occupancy Fetch Strategy","description":"How already-booked appointments are fetched to compute occupancy. See SlotOccupancyFetchStrategy.","default":"location_v1"}},"type":"object","title":"Scheduling Capacity Rule","description":"Declarative capacity/exclusion rule for how many appointments may occupy the same\nnominal calendar slot. Flat, explicit fields only — not a rule DSL — so it stays\nhand-authorable per integration/template."},"SlotOccupancyFetchStrategy":{"type":"string","enum":["location_v1","practitioner_v1"],"title":"SlotOccupancyFetchStrategy","description":"How `SlotCapacityRuleConfig`'s occupancy pre-fetch queries already-booked appointments."},"SlotResourceResolutionStrategy":{"type":"string","enum":["practitioner_record_v1","provider_resource_v1"],"title":"SlotResourceResolutionStrategy","description":"How free-slot search and appointment-creation resolve the FHIR actor used as the\n'Practitioner' slot-search actor / appointment participant."},"SmsEmailCommunicationPreference":{"type":"string","enum":["sms","email","sms_and_email","sms_or_email"],"title":"Communication Preference","description":"SMS and Email communication preferences only (no call).","x-enumTitles":{"email":"Email","sms":"SMS","sms_and_email":"SMS and Email","sms_or_email":"SMS or Email"}},"StatsOverview":{"properties":{"total":{"type":"integer","minimum":0,"title":"Total Count","description":"Total number of appointments/patients in the selected date range","default":0}},"type":"object","title":"StatsOverview","description":"Model for appointment/patient overview data.\nProvides a summary of total count."},"StatsSource":{"properties":{"_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name","description":"Creation source of the appointments/patients"},"count":{"type":"integer","minimum":0,"title":"Source Count","description":"Number of appointments/patients from this source","default":0}},"type":"object","title":"StatsSource","description":"Model for appointment/patient sources with counts.\nGroups records by their creation source."},"StatsTrend":{"properties":{"_id":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Trend Date","description":"Date for this trend data (daily)"},"successful":{"type":"integer","minimum":0,"title":"Successful Count","description":"Number of successful appointments/patients for this date","default":0},"failed":{"type":"integer","minimum":0,"title":"Failed Count","description":"Number of failed appointments/patients for this date","default":0}},"type":"object","title":"StatsTrend","description":"Model for appointment/patient trends over time.\nContains daily breakdown of successful and failed records."},"UpdateAppointmentRequest":{"properties":{"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration","description":"Length of the appointment in minutes."},"start_time":{"type":"string","title":"Start Time","description":"ISO 8601 timestamp for the appointment start (e.g., 2025-01-01T10:00:00Z)."},"location_id":{"anyOf":[{"type":"integer"},{"type":"string"}],"title":"Location Id","description":"Location identifier where the appointment will take place."},"practitioner_id":{"type":"string","title":"Practitioner Id","description":"Identifier of the practitioner assigned to the appointment."},"resource_provider_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Provider Id","description":"For a resource-based integration (e.g. FIN): the exact eCW scheduling-resource id actually being booked (PatientAppointment.resourceProviderId on GET). `practitioner_id` alongside it is the primary/main practitioner id, kept for consistency with the GET schema and for the FHIR Practitioner actor - slot fetch/check use `resource_provider_id` only and ignore `practitioner_id`. Absent for a direct single-practitioner booking with no separate resource."},"slot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slot Id","description":"Optional slot identifier representing the specific time slot for the appointment."},"patient_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Id","description":"Identifier of the patient for whom the appointment is scheduled."},"patient_request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Request Id","description":"Optional unique identifier provided by the frontend to idempotently create appointments."},"visit_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason","description":"Reason for the patient's visit or appointment."},"visit_reason_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Reason Code","description":"Reason for the patient's visit reason."},"visit_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visit Status","description":"Current status of the visit, such as 'PEN', 'CANC', 'N/S', 'R/S'.","default":"PEN"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes","description":"Additional notes or metadata associated with the appointment."},"distance_in_miles":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Distance In Miles","description":"Distance in miles from patient's address to the appointment location."},"patient_details":{"anyOf":[{"$ref":"#/components/schemas/PatientDetails"},{"type":"null"}],"description":"Lightweight patient details required by the appointment creation flow."},"payment_method":{"anyOf":[{"$ref":"#/components/schemas/IntegrationPaymentMethod"},{"type":"null"}],"description":"Preferred payment method for the patient."},"appointment_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Type","description":"Appointment type filter used for EHR."},"appointment_type_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Appointment Type Code","description":"EHR-specific code for the appointment (e.g., '422')."},"skip_appointment_type":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Skip Appointment Type","description":"When true, omit the appointment-type filter when checking slot availability.","default":false},"appointment_id":{"type":"string","title":"Appointment Id","description":"Identifier of the appointment to be updated."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Reason for rescheduling/Cancellation the appointment, required by some EHR systems to update in General notes","default":"Cancellation/Reschedule Reason Requested by patient"},"reason_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason Code","description":"Reason Code associated with Reason for Appointment Reschedule/Cancel"},"past_appointment_start_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Past Appointment Start Time","description":"ISO 8601 timestamp for the past appointment start"}},"type":"object","required":["start_time","location_id","practitioner_id","appointment_id"],"title":"UpdateAppointmentRequest","description":"Request payload for updating an existing appointment in the EHR session flow."},"UseCaseConfigPayload":{"properties":{"use_case":{"$ref":"#/components/schemas/UseCaseType"},"enabled":{"type":"boolean","title":"Enabled","default":true},"actions":{"items":{"$ref":"#/components/schemas/ActionConfig"},"type":"array","title":"Actions"}},"type":"object","required":["use_case","actions"],"title":"UseCaseConfigPayload"},"UseCaseGroupUpsertRequest":{"properties":{"name":{"type":"string","title":"Name","description":"Human friendly group name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug","description":"Optional explicit slug; if omitted will be generated"},"sheet_link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sheet Link","description":"Associated sheet link for this group"},"assistant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assistant Id","description":"Assistant identifier bound to this group"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone identifier e.g. America/Chicago"},"start_time":{"anyOf":[{"type":"string","format":"time"},{"type":"null"}],"title":"Start Time","description":"Time of day to run the use-case group (HH:MM:SS)"},"group_id":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Group Id","description":"If provided, updates the existing group; otherwise creates a new group"},"use_cases":{"items":{"$ref":"#/components/schemas/UseCaseConfigPayload"},"type":"array","title":"Use Cases","description":"List of use-case configurations to upsert under this group"}},"type":"object","required":["name"],"title":"UseCaseGroupUpsertRequest","example":{"assistant_id":"68a8652f82513625d1c21a85","name":"Appointment Reminders","sheet_link":"https://1drv.ms/x/...","start_time":"08:00:00","timezone":"America/Chicago","use_cases":[{"actions":[{"action_type":"SMS","context":"reminder_7d","day":7,"template_name":"First SMS"},{"action_type":"CALL","context":"reminder_1d","day":1,"template_name":"Day 1 Call"}],"enabled":true,"use_case":"NEW_PATIENT_APPOINTMENT_REMINDER"},{"actions":[{"action_type":"SMS","context":"lab_result_sms","day":0,"template_name":"Lab Result SMS"}],"enabled":true,"use_case":"LAB_REMINDER"}]}},"UseCaseType":{"type":"string","enum":["NEW_PATIENT_APPOINTMENT_REMINDER","LAB_REMINDER","REFERRAL","FINAL_APPOINTMENT_NOTIFICATION"],"title":"UseCaseType"},"UseCasesActionsConfig":{"properties":{"logicalId":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logical ID","description":"Unique identifier for the use case action","input_field_not_visible":true},"templateName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Name","description":"Name of the template used for the action"},"communicationPreference":{"anyOf":[{"$ref":"#/components/schemas/IntegrationUseCaseCommunicationPreference"},{"type":"null"}],"title":"Communication Preference","description":"Preferred communication method for the action. This is used to determine the best way to communicate with the patient based on their preferences and the use-case requirements.","input_field_helper_text":"Select the preferred communication method for this action. This will help ensure that notifications are sent in a way that aligns with patient preferences and use-case needs."},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action Context","description":"Contextual information for the action"},"reportEmails":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Emails for sending reports","description":"List of email addresses to send the reports to"},"daysWindow":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Window","description":"Number of days in advance to check for the action","default":7},"status":{"anyOf":[{"$ref":"#/components/schemas/IntegrationStatus"},{"type":"null"}],"title":"Status","description":"Current status of the use-case action. Setting this to inactive will disable the action without deleting it.","default":"active","input_field_helper_text":"Select inactive to disable this use-case action without deleting it."},"schedule":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/OneTimeTriggerRule"},{"$ref":"#/components/schemas/DaysTriggerRule"}],"discriminator":{"propertyName":"field","mapping":{"days":"#/components/schemas/DaysTriggerRule","oneTime":"#/components/schemas/OneTimeTriggerRule"}}},{"type":"null"}],"title":"Action Schedule","description":"You can schedule actions to run at specific times or intervals."}},"type":"object","title":"Use Case Action","description":"Configuration for actions within use-cases.","keep_collapsed":true},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerifyLiveSheetRequest":{"properties":{"live_sheet_link":{"type":"string","title":"Live Sheet Link"}},"type":"object","required":["live_sheet_link"],"title":"VerifyLiveSheetRequest"},"VerifyLiveSheetResponse":{"properties":{"isValid":{"type":"boolean","title":"Isvalid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["isValid"],"title":"VerifyLiveSheetResponse"},"WebSchedulingUseCaseConfig-Input":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","maxLength":24,"minLength":24,"pattern":"^[0-9a-f]{24}$","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"web_scheduling","title":"Type","description":"Type of the use-case. Must be 'web_scheduling'","default":"web_scheduling","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Web scheduling for patient appointments","default":"Web Scheduling","input_field_not_visible":true},"start_offset_days":{"type":"integer","minimum":0,"title":"Start Offset Days","description":"Number of days to offset the first available appointment shown to patients","default":0},"disclaimer_message":{"type":"string","title":"Disclaimer Message","description":"Disclaimer displayed alongside the scheduling experience to guide patients","default":""},"redirect_url":{"type":"string","title":"Redirect URL","description":"URL, patient is redirected if he/she is an existing patient","default":"","keep_collapsed":true},"insurance_flow_settings":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceFlowSettings-Input"},{"type":"null"}],"title":"Insurance Flow Settings","description":"Optional configuration for insurance flow settings to be applied during web scheduling","keep_collapsed":true}},"type":"object","title":"Web Scheduling Use Case Configuration"},"WebSchedulingUseCaseConfig-Output":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Friendly Name","description":"Friendly name for the use-case. You can change this to better identify the use-case."},"assistantId":{"anyOf":[{"type":"string","example":"5eb7cf5a86d9755df3a6c593"},{"type":"null"}],"title":"Assistant","description":"ID of the assistant associated with this use-case","input_field_type":"assistant_selection_with_assistant_id"},"status":{"$ref":"#/components/schemas/IntegrationStatus","description":"Current status of the use-case","default":"active","input_field_helper_text":"Select inactive to disable this use-case without deleting it."},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone","description":"Timezone for scheduling and notifications","input_field_type":"timezone"},"type":{"type":"string","const":"web_scheduling","title":"Type","description":"Type of the use-case. Must be 'web_scheduling'","default":"web_scheduling","input_field_not_visible":true},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Web scheduling for patient appointments","default":"Web Scheduling","input_field_not_visible":true},"start_offset_days":{"type":"integer","minimum":0,"title":"Start Offset Days","description":"Number of days to offset the first available appointment shown to patients","default":0},"disclaimer_message":{"type":"string","title":"Disclaimer Message","description":"Disclaimer displayed alongside the scheduling experience to guide patients","default":""},"redirect_url":{"type":"string","title":"Redirect URL","description":"URL, patient is redirected if he/she is an existing patient","default":"","keep_collapsed":true},"insurance_flow_settings":{"anyOf":[{"$ref":"#/components/schemas/IntegrationInsuranceFlowSettings-Output"},{"type":"null"}],"title":"Insurance Flow Settings","description":"Optional configuration for insurance flow settings to be applied during web scheduling","keep_collapsed":true}},"type":"object","title":"Web Scheduling Use Case Configuration"},"WeekendBehavior":{"type":"string","enum":["none","next_weekday","previous_weekday"],"title":"WeekendBehavior"},"WorkingHoursWindow":{"properties":{"start":{"type":"string","title":"Start","description":"Start time in HH:MM (24h) format","input_field_helper_text":"Example: 08:15","input_field_type":"time_picker"},"end":{"type":"string","title":"End","description":"End time in HH:MM (24h) format","input_field_helper_text":"Example: 16:00","input_field_type":"time_picker"}},"type":"object","required":["start","end"],"title":"Working Hours Window","description":"A single working-hours window within a day.\n\nTimes are local times (no timezone). They apply to the date of the slot."},"WriteBackPayload":{"properties":{"history":{"items":{"$ref":"#/components/schemas/HistoryItem"},"type":"array","title":"History"}},"type":"object","title":"WriteBackPayload"},"WriteBackRequest":{"properties":{"channel":{"type":"string","title":"Channel","description":"sms or call"},"direction":{"type":"string","title":"Direction","description":"inbound or outbound"},"assistant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assistant Id"},"patient_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Phone"},"ended_call":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ended Call"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"Explicit status or leave empty to infer from history"},"payload":{"$ref":"#/components/schemas/WriteBackPayload"},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Id"},"patient_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Patient Uuid"}},"type":"object","required":["channel","direction"],"title":"WriteBackRequest"},"integrations_service__src__models__integrations__IntegrationsListResponse":{"properties":{"integrations":{"items":{"$ref":"#/components/schemas/IntegrationItem"},"type":"array","title":"Integrations"}},"type":"object","required":["integrations"],"title":"IntegrationsListResponse"},"integrations_service__src__utils__response_models__IntegrationsListResponse":{"properties":{"integrations":{"items":{"$ref":"#/components/schemas/IntegrationsModel"},"type":"array","title":"Integrations","description":"List of integrations"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total","description":"Total number of integrations available without pagination."}},"type":"object","title":"IntegrationsListResponse","description":"Response model for a list of integrations.\nContains a list of IntegrationsModel objects."}}}}