{
  "openapi": "3.0.3",
  "info": {
    "title": "Hook REST API",
    "description": "The Hook REST API enables you to programmatically access and manage your Hook workspace.",
    "version": "1.0.33"
  },
  "servers": [
    {
      "url": "https://api.hook.co/v1"
    }
  ],
  "paths": {
    "/members/me": {
      "get": {
        "operationId": "getCurrentMember",
        "summary": "Get the current member",
        "description": "Returns the member associated with the authorisation token",
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Member"
                }
              }
            }
          }
        },
        "tags": [
          "Members"
        ]
      }
    },
    "/organizations/{organizationId}/automations": {
      "get": {
        "operationId": "listAutomations",
        "summary": "List all automations",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationSummaryList"
                }
              }
            }
          }
        },
        "tags": [
          "Automations"
        ]
      }
    },
    "/organizations/{organizationId}/automations/{automationId}": {
      "get": {
        "operationId": "getAutomation",
        "summary": "Get a single automation by ID",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "automationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Automation"
                }
              }
            }
          }
        },
        "tags": [
          "Automations"
        ]
      }
    },
    "/organizations/{organizationId}/automations/{automationId}/actions/{actionId}/logs": {
      "get": {
        "operationId": "listAutomationActionLogs",
        "summary": "List logs for an automation action",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "exclusiveMinimum": true,
              "maximum": 250,
              "minimum": 0
            }
          },
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "automationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "actionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationActionLogList"
                }
              }
            }
          }
        },
        "tags": [
          "Automations"
        ]
      }
    },
    "/organizations/{organizationId}/automations/{automationId}/triggers/{triggerId}/logs": {
      "get": {
        "operationId": "listAutomationTriggerLogs",
        "summary": "List logs for an automation trigger",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "exclusiveMinimum": true,
              "maximum": 250,
              "minimum": 0
            }
          },
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "automationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "triggerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationTriggerLogList"
                }
              }
            }
          }
        },
        "tags": [
          "Automations"
        ]
      }
    },
    "/organizations/{organizationId}/briefs": {
      "get": {
        "operationId": "listBriefs",
        "summary": "List all briefs",
        "description": "Returns the active brief definitions configured for the organization",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "exclusiveMinimum": true,
              "maximum": 250,
              "minimum": 0
            }
          },
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BriefList"
                }
              }
            }
          }
        },
        "tags": [
          "Briefs"
        ]
      }
    },
    "/organizations/{organizationId}/custom-fields": {
      "get": {
        "operationId": "listCustomFields",
        "summary": "List custom fields",
        "description": "Returns the custom field definitions for the organization",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldList"
                }
              }
            }
          }
        },
        "tags": [
          "CustomFields"
        ]
      }
    },
    "/organizations/{organizationId}/member-roles": {
      "get": {
        "operationId": "listMemberRoles",
        "summary": "List member roles",
        "description": "Returns the member-customer role definitions for the organization. These are the roles that associate a member with a customer, such as CSM or Account Manager",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberRoleList"
                }
              }
            }
          }
        },
        "tags": [
          "MemberRoles"
        ]
      }
    },
    "/organizations/{organizationId}/members": {
      "get": {
        "operationId": "listMembers",
        "summary": "List all members",
        "description": "Returns a list of members",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberList"
                }
              }
            }
          }
        },
        "tags": [
          "Members"
        ]
      }
    },
    "/organizations/{organizationId}/members/{memberId}": {
      "get": {
        "operationId": "getMember",
        "summary": "Get a member",
        "description": "Returns a member by their ID",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "memberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Member"
                }
              }
            }
          }
        },
        "tags": [
          "Members"
        ]
      }
    },
    "/organizations/{organizationId}/note-categories": {
      "get": {
        "operationId": "listNoteCategories",
        "summary": "List note categories",
        "description": "Returns the active note categories for the organization, for use when creating a note",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoteCategoryList"
                }
              }
            }
          }
        },
        "tags": [
          "Notes"
        ]
      }
    },
    "/organizations/{organizationId}/products": {
      "get": {
        "operationId": "listProducts",
        "summary": "List products",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductList"
                }
              }
            }
          }
        },
        "tags": [
          "Products"
        ]
      }
    },
    "/organizations/{organizationId}/products/{productId}/metrics": {
      "get": {
        "operationId": "listProductMetrics",
        "summary": "List product metrics",
        "description": "Returns the metrics for a given product",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductMetricList"
                }
              }
            }
          }
        },
        "tags": [
          "Products"
        ]
      }
    },
    "/organizations/{organizationId}/signals": {
      "get": {
        "operationId": "listSignals",
        "summary": "List all signals",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "exclusiveMinimum": true,
              "maximum": 250,
              "minimum": 0
            }
          },
          {
            "name": "scope",
            "in": "query",
            "description": "All will return all visible customers. Team will restrict this to those where your team members (members under a shared manager) are assigned a role on the customer. Mine will only return customers you are assigned a role to on the customer.",
            "required": false,
            "schema": {
              "default": "all",
              "allOf": [
                {
                  "$ref": "#/components/schemas/ScopeInput"
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/SignalStatusInput"
                }
              ]
            }
          },
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignalList"
                }
              }
            }
          }
        },
        "tags": [
          "Signals"
        ]
      }
    },
    "/organizations/{organizationId}/signals/{signalId}": {
      "get": {
        "operationId": "getSignal",
        "summary": "Get a single signal by ID",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "signalId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Signal"
                }
              }
            }
          }
        },
        "tags": [
          "Signals"
        ]
      }
    },
    "/organizations/{organizationId}/customers": {
      "get": {
        "operationId": "listCustomers",
        "summary": "List all customers",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "exclusiveMinimum": true,
              "maximum": 250,
              "minimum": 0
            }
          },
          {
            "name": "scope",
            "in": "query",
            "description": "All will return all visible customers. Team will restrict this to those where your team members (members under a shared manager) are assigned a role on the customer. Mine will only return customers you are assigned a role to on the customer.",
            "required": false,
            "schema": {
              "default": "all",
              "allOf": [
                {
                  "$ref": "#/components/schemas/ScopeInput"
                }
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/CustomerStatusInput"
                }
              ]
            }
          },
          {
            "name": "updatedSince",
            "in": "query",
            "description": "Only return customers updated at or after this time, up to now.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
            }
          },
          {
            "name": "memberId",
            "in": "query",
            "description": "Only return customers this member is assigned to (in any role).",
            "required": false,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "memberRoleId",
            "in": "query",
            "description": "Narrow the `memberId` filter to a single role, e.g. CSM. The role id is the `id` returned by ListMemberRoles. Must be supplied together with `memberId`.",
            "required": false,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "sourceKey",
            "in": "query",
            "description": "The source to match `sourceExternalId` against, e.g. salesforce. This is the `key` returned in a customer `sources` entry. Must be supplied together with `sourceExternalId`.",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "name": "sourceExternalId",
            "in": "query",
            "description": "Filter customers by their ID in an external source, such as a CRM. Must be supplied together with `sourceKey`.",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1
            }
          },
          {
            "name": "segment",
            "in": "query",
            "description": "Filter customers by segment name",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1
            }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "Filter customers by domain, e.g. example.com",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Filter customers by country",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1
            }
          },
          {
            "name": "region",
            "in": "query",
            "description": "Filter customers by region",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1
            }
          },
          {
            "name": "city",
            "in": "query",
            "description": "Filter customers by city",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1
            }
          },
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerList"
                }
              }
            }
          }
        },
        "tags": [
          "Customers"
        ]
      }
    },
    "/organizations/{organizationId}/customers/{customerId}/briefs/{briefId}/contents": {
      "get": {
        "operationId": "listCustomerBriefContents",
        "summary": "List the contents generated for a brief for a customer",
        "description": "Returns the generated contents for a single brief on a customer, most recent first",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "exclusiveMinimum": true,
              "maximum": 250,
              "minimum": 0
            }
          },
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "briefId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BriefContentList"
                }
              }
            }
          }
        },
        "tags": [
          "Briefs"
        ]
      }
    },
    "/organizations/{organizationId}/customers/{customerId}/meetings": {
      "get": {
        "operationId": "listCustomerMeetings",
        "summary": "List all meetings for a customer",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "exclusiveMinimum": true,
              "maximum": 250,
              "minimum": 0
            }
          },
          {
            "name": "minStartDate",
            "in": "query",
            "description": "Only return meetings starting on or after this date",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
            }
          },
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeetingList"
                }
              }
            }
          }
        },
        "tags": [
          "Meetings"
        ]
      }
    },
    "/organizations/{organizationId}/customers/{customerId}/meetings/{meetingId}": {
      "get": {
        "operationId": "getCustomerMeeting",
        "summary": "Get a single meeting for a customer by ID, including its transcript",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "meetingId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeetingWithTranscript"
                }
              }
            }
          }
        },
        "tags": [
          "Meetings"
        ]
      }
    },
    "/organizations/{organizationId}/customers/{customerId}/notes": {
      "get": {
        "operationId": "listCustomerNotes",
        "summary": "List all notes for a customer",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 0,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "exclusiveMinimum": true,
              "maximum": 250,
              "minimum": 0
            }
          },
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NoteList"
                }
              }
            }
          }
        },
        "tags": [
          "Notes"
        ]
      },
      "post": {
        "operationId": "createCustomerNote",
        "summary": "Create a note for a customer",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "categoryId": {
                    "type": "integer",
                    "example": 3,
                    "exclusiveMinimum": true,
                    "maximum": 9007199254740991,
                    "minimum": 0
                  },
                  "title": {
                    "type": "string",
                    "example": "Kick off call",
                    "minLength": 1
                  },
                  "body": {
                    "type": "string",
                    "example": "Discussed onboarding plan.",
                    "minLength": 1
                  },
                  "userIds": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "exclusiveMinimum": true,
                      "maximum": 9007199254740991
                    },
                    "example": [
                      7,
                      11
                    ]
                  },
                  "contactIds": {
                    "type": "array",
                    "items": {
                      "type": "integer",
                      "minimum": 0,
                      "exclusiveMinimum": true,
                      "maximum": 9007199254740991
                    },
                    "example": [
                      21,
                      34
                    ]
                  }
                },
                "required": [
                  "categoryId",
                  "body"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Note"
                }
              }
            }
          }
        },
        "tags": [
          "Notes"
        ]
      }
    },
    "/organizations/{organizationId}/customers/{customerId}": {
      "get": {
        "operationId": "getCustomer",
        "summary": "Get a single customer by ID",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization ID of the member accessing the resource",
            "required": true,
            "schema": {
              "type": "string",
              "example": "my-organization-id"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": true,
              "maximum": 9007199254740991,
              "minimum": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Default Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        },
        "tags": [
          "Customers"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ScopeInput": {
        "type": "string",
        "enum": [
          "mine",
          "team",
          "all"
        ]
      },
      "SignalStatusInput": {
        "type": "string",
        "enum": [
          "Active",
          "Cleared",
          "Detected",
          "Dismissed"
        ]
      },
      "CustomerStatusInput": {
        "type": "string",
        "enum": [
          "Active",
          "Churned",
          "Upcoming",
          "Unassigned"
        ]
      },
      "Member": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1234,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "firstName": {
            "type": "string",
            "example": "Phoebe",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "example": "Frere",
            "nullable": true
          },
          "email": {
            "type": "string",
            "example": "phoebe@example.com"
          },
          "organizationId": {
            "type": "string",
            "example": "my-organization-id"
          },
          "managerId": {
            "description": "The Member ID of this member's manager",
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0,
            "nullable": true
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "firstName",
          "lastName",
          "email",
          "organizationId",
          "managerId"
        ]
      },
      "MemberList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Member"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "AutomationActionLogStatus": {
        "type": "string",
        "enum": [
          "success",
          "error",
          "skipped",
          "info",
          "close"
        ]
      },
      "AutomationTriggerLogStatus": {
        "type": "string",
        "enum": [
          "info",
          "failed"
        ]
      },
      "AutomationSummary": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1234,
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "name": {
            "type": "string",
            "example": "High value account at risk"
          },
          "deactivatedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "deactivatedDate"
        ]
      },
      "AutomationTrigger": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ]
      },
      "AutomationAction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ]
      },
      "Automation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1234,
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "name": {
            "type": "string",
            "example": "High value account at risk"
          },
          "deactivatedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "triggers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutomationTrigger"
            }
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutomationAction"
            }
          },
          "children": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/Automation"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "deactivatedDate",
          "triggers",
          "actions",
          "children"
        ]
      },
      "AutomationActionLog": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "customer": {
            "type": "object",
            "additionalProperties": false,
            "nullable": true,
            "properties": {
              "id": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ]
          },
          "user": {
            "type": "object",
            "additionalProperties": false,
            "nullable": true,
            "properties": {
              "id": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              "customerId": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              "firstName": {
                "type": "string",
                "nullable": true
              },
              "lastName": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "id",
              "customerId",
              "firstName",
              "lastName"
            ]
          },
          "contact": {
            "type": "object",
            "additionalProperties": false,
            "nullable": true,
            "properties": {
              "id": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              "customerId": {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              "firstName": {
                "type": "string",
                "nullable": true
              },
              "lastName": {
                "type": "string",
                "nullable": true
              }
            },
            "required": [
              "id",
              "customerId",
              "firstName",
              "lastName"
            ]
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AutomationActionLogStatus"
              }
            ],
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "customer",
          "user",
          "contact",
          "status",
          "message",
          "createdDate"
        ]
      },
      "AutomationTriggerLog": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "status": {
            "$ref": "#/components/schemas/AutomationTriggerLogStatus"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "status",
          "message",
          "createdDate"
        ]
      },
      "AutomationSummaryList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutomationSummary"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "AutomationActionLogList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutomationActionLog"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "AutomationTriggerLogList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutomationTriggerLog"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "Brief": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 42,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "name": {
            "type": "string",
            "example": "Executive summary"
          },
          "description": {
            "type": "string",
            "example": "A high level summary of the customer relationship.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "description"
        ]
      },
      "BriefList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Brief"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "BriefContent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 981,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "briefId": {
            "type": "integer",
            "example": 42,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "customerId": {
            "type": "integer",
            "example": 12,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "content": {
            "example": "Renewal is on track; the champion is engaged.",
            "type": "string"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "updatedDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "briefId",
          "customerId",
          "content",
          "createdDate",
          "updatedDate"
        ]
      },
      "BriefContentList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BriefContent"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "CustomField": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "key": {
            "type": "string",
            "example": "tier"
          },
          "name": {
            "type": "string",
            "example": "Tier"
          },
          "type": {
            "type": "string",
            "example": "account"
          },
          "dataType": {
            "type": "string",
            "example": "string"
          },
          "productId": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "nullable": true
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "key",
          "name",
          "type",
          "dataType",
          "productId"
        ]
      },
      "CustomFieldList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "MemberRole": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "key": {
            "type": "string",
            "example": "csm"
          },
          "name": {
            "type": "string",
            "example": "CSM"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "key",
          "name"
        ]
      },
      "MemberRoleList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemberRole"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "NoteCategory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 3,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "name": {
            "type": "string",
            "example": "Meeting"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ]
      },
      "NoteCategoryList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NoteCategory"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "NotePerson": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 7,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "email": {
            "type": "string",
            "example": "jane@example.com",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "example": "Jane",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "example": "Doe",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "email",
          "firstName",
          "lastName"
        ]
      },
      "Note": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 64,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "customerId": {
            "type": "integer",
            "example": 12,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "title": {
            "type": "string",
            "example": "Kick off call",
            "nullable": true
          },
          "body": {
            "type": "string",
            "example": "Discussed onboarding plan.",
            "nullable": true
          },
          "category": {
            "$ref": "#/components/schemas/NoteCategory"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotePerson"
            }
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotePerson"
            }
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "updatedDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "customerId",
          "title",
          "body",
          "category",
          "users",
          "contacts",
          "createdDate",
          "updatedDate"
        ]
      },
      "NoteList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Note"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "Product": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 8732,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "name": {
            "type": "string",
            "example": "Platform product"
          },
          "key": {
            "type": "string",
            "example": "platform"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "key"
        ]
      },
      "ProductList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Product"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "ProductMetric": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "key": {
            "type": "string",
            "example": "health_score"
          },
          "name": {
            "type": "string",
            "example": "Health Score"
          },
          "dataType": {
            "type": "string",
            "example": "percentage"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "key",
          "name",
          "dataType"
        ]
      },
      "ProductMetricList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductMetric"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "SignalCategory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ]
      },
      "SignalDismissalReason": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ]
      },
      "SignalOutcome": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ]
      },
      "SignalCompetitor": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name"
        ]
      },
      "SignalType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "color"
        ]
      },
      "Signal": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "customerId": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "productId": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "productKey": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "summary": {
            "type": "string",
            "nullable": true
          },
          "notes": {
            "type": "string",
            "enum": [
              null
            ],
            "deprecated": true,
            "nullable": true
          },
          "severity": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "nullable": true
          },
          "severityExplanation": {
            "type": "string",
            "nullable": true
          },
          "createdById": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "nullable": true
          },
          "updatedById": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "nullable": true
          },
          "ownerId": {
            "type": "integer",
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0,
            "nullable": true
          },
          "latestNote": {
            "type": "string",
            "nullable": true
          },
          "isDraft": {
            "type": "boolean"
          },
          "isPrimary": {
            "type": "boolean",
            "nullable": true
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "raisedDate": {
            "type": "string",
            "format": "date-time"
          },
          "closedDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatedDate": {
            "type": "string",
            "format": "date-time"
          },
          "opportunity": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SignalCategory"
              }
            ],
            "nullable": true
          },
          "dismissalReason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SignalDismissalReason"
              }
            ],
            "nullable": true
          },
          "subCategory": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SignalCategory"
              }
            ],
            "nullable": true
          },
          "outcome": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SignalOutcome"
              }
            ],
            "nullable": true
          },
          "outcomeNotes": {
            "type": "string",
            "nullable": true
          },
          "competitor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SignalCompetitor"
              }
            ],
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/SignalType"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "customerId",
          "productId",
          "productKey",
          "status",
          "source",
          "summary",
          "notes",
          "severity",
          "severityExplanation",
          "createdById",
          "updatedById",
          "ownerId",
          "latestNote",
          "isDraft",
          "isPrimary",
          "createdDate",
          "raisedDate",
          "closedDate",
          "updatedDate",
          "opportunity",
          "category",
          "dismissalReason",
          "subCategory",
          "outcome",
          "outcomeNotes",
          "competitor",
          "type"
        ]
      },
      "SignalList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Signal"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "CustomerMemberRole": {
        "type": "object",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Member"
            }
          },
          "key": {
            "type": "string",
            "example": "csm"
          },
          "name": {
            "type": "string",
            "example": "CSM"
          }
        },
        "additionalProperties": false,
        "required": [
          "members",
          "key",
          "name"
        ]
      },
      "CustomerCustomField": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "example": "health_score"
          },
          "value": {
            "example": 85
          }
        },
        "additionalProperties": false,
        "required": [
          "key",
          "value"
        ]
      },
      "CustomerProductMetric": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "example": "active_integrations"
          },
          "value": {
            "example": 85
          }
        },
        "additionalProperties": false,
        "required": [
          "key",
          "value"
        ]
      },
      "CustomerProduct": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "example": "platform"
          },
          "status": {
            "type": "string",
            "example": "active"
          },
          "arr": {
            "type": "number",
            "example": 12000,
            "nullable": true
          },
          "renewalDate": {
            "type": "string",
            "example": "2026-01-01",
            "nullable": true
          },
          "engagement": {
            "type": "object",
            "additionalProperties": false,
            "nullable": true,
            "properties": {
              "level": {
                "type": "string",
                "example": "high",
                "nullable": true
              }
            },
            "required": [
              "level"
            ]
          },
          "upsell": {
            "type": "object",
            "additionalProperties": false,
            "nullable": true,
            "properties": {
              "level": {
                "type": "string",
                "example": "upsell"
              }
            },
            "required": [
              "level"
            ]
          },
          "metrics": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerProductMetric"
            }
          }
        },
        "additionalProperties": false,
        "required": [
          "key",
          "status",
          "arr",
          "renewalDate",
          "engagement",
          "upsell",
          "metrics"
        ]
      },
      "CustomerSource": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "example": "salesforce"
          },
          "externalId": {
            "type": "string",
            "example": "0010x000000aAAA"
          }
        },
        "additionalProperties": false,
        "required": [
          "key",
          "externalId"
        ]
      },
      "Customer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1234,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "name": {
            "type": "string",
            "example": "Acme Corp"
          },
          "city": {
            "type": "string",
            "example": "San Francisco",
            "nullable": true
          },
          "country": {
            "type": "string",
            "example": "US",
            "nullable": true
          },
          "region": {
            "type": "string",
            "example": "US",
            "nullable": true
          },
          "timezone": {
            "type": "string",
            "example": "America/Los_Angeles",
            "nullable": true
          },
          "domain": {
            "type": "string",
            "example": "acme.com",
            "nullable": true
          },
          "employeeCount": {
            "type": "integer",
            "example": 500,
            "maximum": 9007199254740991,
            "minimum": -9007199254740991,
            "nullable": true
          },
          "segment": {
            "type": "string",
            "example": "Enterprise",
            "nullable": true
          },
          "memberRoles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerMemberRole"
            }
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerCustomField"
            }
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerProduct"
            }
          },
          "sources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerSource"
            }
          },
          "updatedDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "city",
          "country",
          "region",
          "timezone",
          "domain",
          "employeeCount",
          "segment",
          "memberRoles",
          "customFields",
          "products",
          "sources",
          "updatedDate"
        ]
      },
      "CustomerList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Customer"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "MeetingPerson": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 7,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "email": {
            "type": "string",
            "example": "jane@example.com",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "example": "Jane",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "example": "Doe",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "email",
          "firstName",
          "lastName"
        ]
      },
      "Meeting": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 88,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "customerId": {
            "type": "integer",
            "example": 12,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "topic": {
            "type": "string",
            "example": "Quarterly business review"
          },
          "summary": {
            "type": "string",
            "example": "Reviewed adoption and agreed next steps.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "example": "https://meet.example.com/abc-defg-hij",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Member"
            }
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MeetingPerson"
            }
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MeetingPerson"
            }
          },
          "unmatchedParticipants": {
            "description": "Participants that could not be matched to a member, user or contact",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "guest@example.com"
            ]
          },
          "nextSteps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "Share the updated pricing proposal"
            ]
          },
          "hasTranscript": {
            "type": "boolean"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "updatedDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "customerId",
          "topic",
          "summary",
          "url",
          "startDate",
          "endDate",
          "members",
          "users",
          "contacts",
          "unmatchedParticipants",
          "nextSteps",
          "hasTranscript",
          "createdDate",
          "updatedDate"
        ]
      },
      "MeetingList": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Meeting"
            }
          },
          "totalCount": {
            "type": "number"
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "totalCount"
        ]
      },
      "MeetingTranscriptLine": {
        "type": "object",
        "properties": {
          "speakerName": {
            "type": "string",
            "example": "Jane Doe"
          },
          "orderNumber": {
            "type": "integer",
            "example": 1,
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "text": {
            "type": "string",
            "example": "Thanks everyone for joining."
          },
          "start": {
            "description": "Milliseconds from the start of the meeting",
            "type": "number",
            "example": 500,
            "nullable": true
          },
          "end": {
            "description": "Milliseconds from the start of the meeting",
            "type": "number",
            "example": 3200,
            "nullable": true
          }
        },
        "additionalProperties": false,
        "required": [
          "speakerName",
          "orderNumber",
          "text",
          "start",
          "end"
        ]
      },
      "MeetingWithTranscript": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 88,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "customerId": {
            "type": "integer",
            "example": 12,
            "exclusiveMinimum": true,
            "maximum": 9007199254740991,
            "minimum": 0
          },
          "topic": {
            "type": "string",
            "example": "Quarterly business review"
          },
          "summary": {
            "type": "string",
            "example": "Reviewed adoption and agreed next steps.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "example": "https://meet.example.com/abc-defg-hij",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "members": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Member"
            }
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MeetingPerson"
            }
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MeetingPerson"
            }
          },
          "unmatchedParticipants": {
            "description": "Participants that could not be matched to a member, user or contact",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "guest@example.com"
            ]
          },
          "nextSteps": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "Share the updated pricing proposal"
            ]
          },
          "hasTranscript": {
            "type": "boolean"
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "updatedDate": {
            "type": "string",
            "format": "date-time"
          },
          "transcript": {
            "description": "The lines of the transcript, in order. Null when the meeting was not transcribed",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MeetingTranscriptLine"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "customerId",
          "topic",
          "summary",
          "url",
          "startDate",
          "endDate",
          "members",
          "users",
          "contacts",
          "unmatchedParticipants",
          "nextSteps",
          "hasTranscript",
          "createdDate",
          "updatedDate",
          "transcript"
        ]
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ]
}