> ## Documentation Index
> Fetch the complete documentation index at: https://docs-qa.interactly.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Integrations



## OpenAPI

````yaml https://api-qa.interactly.ai/api-docs/integrations/api.json get /integrations/v2/use-cases
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
security: []
paths:
  /integrations/v2/use-cases:
    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: []
components:
  schemas:
    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.
        Contains a list of IntegrationsUseCasesModel objects.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    IntegrationStatus:
      type: string
      enum:
        - active
        - inactive
      title: Status
      description: Represents whether the integration is active or inactive.
      x-enumTitles:
        active: Active
        inactive: Inactive
    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
    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:
                    $ref: '#/components/schemas/IntegrationAthenaConfig-Output'
                  ecw:
                    $ref: '#/components/schemas/IntegrationECWConfig-Output'
                  google:
                    $ref: '#/components/schemas/IntegrationGoogleConfig'
                  microsoft:
                    $ref: '#/components/schemas/IntegrationMicrosoftConfig'
                  okta:
                    $ref: '#/components/schemas/IntegrationOktaConfig'
                  slack:
                    $ref: '#/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
      type: object
      title: IntegrationsModel
      description: Main integration model holding configuration and audit details.
    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:
                    $ref: >-
                      #/components/schemas/AppointmentCancellationUseCaseConfig-Output
                  appointment_enquiry:
                    $ref: >-
                      #/components/schemas/AppointmentEnquiryUseCaseConfig-Output
                  appointment_reminder:
                    $ref: >-
                      #/components/schemas/AppointmentReminderUseCaseConfig-Output
                  appointment_reminder_with_sheet:
                    $ref: >-
                      #/components/schemas/AppointmentReminderWithSheetUseCaseConfig-Output
                  appointment_rescheduling:
                    $ref: >-
                      #/components/schemas/AppointmentReschedulingUseCaseConfig-Output
                  appointment_scheduling:
                    $ref: >-
                      #/components/schemas/AppointmentSchedulingUseCaseConfig-Output
                  appointment_scheduling_with_waitlist:
                    $ref: >-
                      #/components/schemas/AppointmentSchedulingWithWaitlistUseCaseConfig-Output
                  final_appointment_notification:
                    $ref: >-
                      #/components/schemas/FinalAppointmentNotificationUseCaseConfig-Output
                  insurance_reminder:
                    $ref: '#/components/schemas/InsuranceReminderUseCaseConfig-Output'
                  invoice_enquiry:
                    $ref: '#/components/schemas/InvoiceBillingUseCaseConfig-Output'
                  lab_reminder:
                    $ref: '#/components/schemas/LabReminderUseCaseConfig-Output'
                  lab_reminder_with_sheet:
                    $ref: >-
                      #/components/schemas/LabReminderWithSheetUseCaseConfig-Output
                  medication_refill:
                    $ref: '#/components/schemas/MedicationRefillUseCaseConfig-Output'
                  web_scheduling:
                    $ref: '#/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.
    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
    IntegrationProviders:
      type: string
      enum:
        - microsoft
        - google
        - athena
        - ecw
        - slack
        - okta
      title: IntegrationProviders
      description: Supported integration providers.
    IntegrationAccess:
      type: string
      enum:
        - personal
        - team
        - system
      title: IntegrationAccess
      description: Indicates who can access this integration.
    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.
    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.
    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.
    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.
    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.
    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.
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
        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
    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
    IntegrationAuthType:
      type: string
      enum:
        - basic
        - oauth
        - oauth2
      title: IntegrationAuthType
      description: Defines the authentication type used for the integration.
    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
    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
    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
    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
    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.
    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:
                    $ref: '#/components/schemas/DaysTriggerRule'
                  oneTime:
                    $ref: '#/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
    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)
    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
    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
    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.
        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.
        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
    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
    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
    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
    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
    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
    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
    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)
    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
    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
  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).

````