# Create an external page (or update an external page by external ID)

You can create a new external page by sending a POST request to this endpoint. If an external page already exists with the specified source_id and external_id, it will be updated instead.

Endpoint: POST /ai/external_pages
Version: Preview
Security: bearerAuth

## Header parameters:

  - `Intercom-Version` (string)

## Request fields (application/json):

  - `title` (string, required)
    The title of the external page.
    Example: Getting started with...

  - `html` (string, required)
    The body of the external page in HTML.
    Example: <p>Hello world!</p>

  - `url` (string)
    The URL of the external page. This will be used by Fin to link end users to the page it based its answer on. When a URL is not present, Fin will not reference the source.
    Example: https://help.example.com/en/articles/1234-getting-started

  - `ai_agent_availability` (boolean)
    Whether the external page should be used to answer questions by AI Agent. Will not default when updating an existing external page.
    Example: true

  - `ai_copilot_availability` (boolean)
    Whether the external page should be used to answer questions by AI Copilot. Will not default when updating an existing external page.
    Example: true

  - `ai_sales_agent_availability` (boolean)
    Whether the external page should be used to answer questions by AI Sales Agent. Will not default when updating an existing external page.
    Example: true

  - `locale` (string, required)
    Always en
    Enum: "en"

  - `source_id` (integer, required)
    The unique identifier for the source of the external page which was given by Intercom. Every external page must be associated with a Content Import Source which represents the place it comes from and from which it inherits a default audience (configured in the UI). For a new source, make a POST request to the Content Import Source endpoint and an ID for the source will be returned in the response.
    Example: 1234

  - `external_id` (string, required)
    The identifier for the external page which was given by the source. Must be unique for the source.
    Example: 5678

  - `audience_ids` (array)
    The list of audience IDs to target this external page to for Fin AI Agent. Omitting the field preserves any default audience segments inherited from the parent content import source. Pass an explicit array to override inherited defaults with the given set. Pass `[]` to clear all audience memberships (even if the source has defaults). Unknown audience IDs return a `404` error with no partial commit.
    Example: [1,2]

## Response 200 fields (application/json):

  - `type` (string, required)
    Always external_page
    Enum: "external_page"

  - `id` (string, required)
    The unique identifier for the external page which is given by Intercom.
    Example: 1234

  - `title` (string, required)
    The title of the external page.
    Example: Getting started with...

  - `html` (string, required)
    The body of the external page in HTML.
    Example: <p>Hello world!</p>

  - `url` (string)
    The URL of the external page. This will be used by Fin to link end users to the page it based its answer on.
    Example: https://help.example.com/en/articles/1234-getting-started

  - `ai_agent_availability` (boolean, required)
    Whether the external page should be used to answer questions by AI Agent.
    Example: true

  - `ai_copilot_availability` (boolean, required)
    Whether the external page should be used to answer questions by AI Copilot.
    Example: true

  - `ai_sales_agent_availability` (boolean)
    Whether the external page should be used to answer questions by AI Sales Agent.
    Example: true

  - `fin_availability` (boolean)
    Deprecated. Use ai_agent_availability, ai_copilot_availability, and ai_sales_agent_availability instead.
    Example: true

  - `locale` (string, required)
    Always en
    Enum: "en"

  - `source_id` (integer, required)
    The unique identifier for the source of the external page which was given by Intercom. Every external page must be associated with a Content Import Source which represents the place it comes from and from which it inherits a default audience (configured in the UI). For a new source, make a POST request to the Content Import Source endpoint and an ID for the source will be returned in the response.
    Example: 1234

  - `external_id` (string, required)
    The identifier for the external page which was given by the source. Must be unique for the source.
    Example: 5678

  - `created_at` (integer, required)
    The time when the external page was created.
    Example: 1672928359

  - `updated_at` (integer, required)
    The time when the external page was last updated.
    Example: 1672928610

  - `last_ingested_at` (integer, required)
    The time when the external page was last ingested.
    Example: 1672928610

  - `audience_ids` (array)
    The list of audience IDs this external page is targeted to for Fin AI Agent. Empty array means no audience targeting is set.
    Example: [1,2]

## Response 401 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

## Response 404 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (string, required)
    A string indicating the kind of error, used to further qualify the HTTP response code
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

  - `errors.field` (string)
    Optional. Used to identify a particular field or query parameter that was in error.
    Example: email

