Skip to main content
Back to Search AI connectors list Search AI uses a Unified Schema to standardize data ingestion from diverse content sources — enterprise applications, files, and webpages. This schema defines a consistent structure so that data from different formats and systems can be interpreted and searched uniformly. When content is ingested via connectors, fields from the source application are automatically mapped to the most relevant fields in the unified schema. You can override default mappings using the Field Mapping option in the connector configuration, and extend the schema with custom fields to accommodate additional data.

Default Schema Fields

The following are the default fields of the Unified Schema. Some fields are system fields and cannot be updated.
Some fields in the list are system fields and cannot be updated.
Document FieldDescriptionIs System Field
access_levelVisibility or permission level associated with the documentNo
archived_atTimestamp indicating when the document or record was archivedNo
assigneeIdentifier of the user or entity responsible for the document, task, or recordNo
assignee_emailEmail address of the user assigned to the documentNo
assignee_nameDisplay name of the assigneeNo
blockedAclList of users or groups explicitly restricted from accessing the documentNo
branchBranch, version, or division of content (for example, in code repositories or knowledge bases)No
categoryClassification label used to group similar documents or content typesNo
channel_idUnique identifier for the communication channel the document originates fromNo
checksumUnique hash value generated for the document contentNo
chunkTypeType of chunkYes
closedOnTimestamp indicating when the item (for example, issue, task, or conversation) was closedNo
comment_countTotal number of comments associated with the itemNo
commentsList or collection of user comments related to the itemNo
commit_idUnique identifier of the commit associated with the itemNo
company_idUnique identifier for the company or organizationNo
company_nameName of the company associated with the recordNo
contact_idUnique identifier for the contact personNo
contact_nameName of the contact personNo
contentMain textual or structured content of the record (for example, body of a document, note, or comment)No
contentIdUnique identifier of the content entityNo
conversation_idUnique identifier of the conversation or threadNo
createdByUser ID or name of the person who created the itemNo
createdOnTimestamp when the item was createdNo
deleted_atTimestamp when the item was deleted (if soft-deleted)No
doc_created_byIdentifier or name of the user who created the documentNo
doc_created_by_emailEmail address of the document creatorNo
doc_created_by_idUnique ID of the document creatorNo
doc_created_by_nameFull name of the document creatorNo
doc_created_onTimestamp when the document was createdNo
doc_idUnique identifier of the documentNo
doc_pathFile path or storage path of the documentNo
doc_source_typeType of source from which the document was ingestedNo
doc_updated_byIdentifier or name of the user who last updated the documentNo
doc_updated_by_emailEmail address of the user who updated the documentNo
doc_updated_by_idUnique ID of the user who last updated the documentNo
doc_updated_onTimestamp when the document was last updatedNo
downvote_countNumber of downvotes received by the item (for example, post, comment, or answer)No
due_dateDue date or deadline associated with the task or itemNo
extractionMethodMethod used to extract data from the sourceYes
extractionStrategyStrategy or approach followed for data extractionYes
file_contentActual text or encoded content of the fileNo
file_image_urlURL to the preview image of the fileNo
file_previewShort summary or visual preview of the file contentNo
file_titleTitle or display name of the fileNo
file_urlDirect URL link to access or download the fileNo
htmlRaw HTML version of the document or page contentNo
issueTypeType or category of issueNo
keywordsList of keywords or tags extracted or assigned to the contentNo
labelsLabels or classifications applied to the itemNo
languageLanguage in which the content is writtenNo
lastSyncAtTimestamp of the most recent synchronization with the source systemNo
locationPhysical or virtual location associated with the recordNo
mentioned_usersList of users mentioned or tagged within the contentNo
message_typeType of messageNo
mime_typeMIME type of the file or documentNo
object_created_by_emailEmail address of the user who created the objectNo
object_created_by_idID of the user who created the objectNo
object_created_by_nameName of the user who created the objectNo
object_created_onTimestamp when the object was createdNo
object_typeType of objectNo
organization_idUnique identifier for the organizationNo
organization_nameName of the organization associated with the recordNo
owner_emailEmail address of the item owner or assigneeNo
owner_idUnique ID of the item owner or assigneeNo
owner_nameFull name of the item owner or assigneeNo
page_bodyText content or body of an HTML pageNo
page_countNumber of pages in the document from which the content is ingestedNo
page_htmlPage content in HTML formatNo
page_image_urlURL for the page image or thumbnailNo
page_numberPage number of the contentNo
page_previewShort preview of the page contentNo
page_titleTitle of the pageNo
page_urlURL of the page or web resourceNo
parent_nameName of the parent entityNo
parent_urlURL of the parent document or source from which this page is derivedNo
priorityPriority level of the itemNo
project_descriptionDescription or summary of the projectNo
project_idUnique identifier for the projectNo
project_nameName of the projectNo
project_owner_emailEmail address of the project ownerNo
project_owner_idID of the project ownerNo
project_owner_nameName of the project ownerNo
project_statusCurrent status of the projectNo
projectNameName of the projectNo
published_atTimestamp when the item or content was publishedNo
reporterIdentifier or name of the person who reported the issueNo
reporter_emailEmail address of the reporterNo
reporter_nameFull name of the reporterNo
repository_idUnique ID of the code or content repositoryNo
repository_nameName of the repositoryNo
resource_typeType of resourceNo
share_countNumber of times the item has been sharedNo
sizeFile size or data volumeNo
sourceTypeType of content source: web crawl, file upload, or connectorNo
sprintSprint or iteration the item belongs toNo
statusCurrent status of the itemNo
sys_file_typeSystem-defined file type classificationYes
sys_raclRole-based Access Control List defining permissions for the resourceNo
sys_source_nameName of the system or connector from which the item originatedYes
tagsTags associated with the record for categorization or searchNo
thread_idUnique identifier of the thread or discussion chainNo
titleTitle or name of the itemNo
updatedByIdentifier or name of the user who last updated the recordNo
updatedOnTimestamp when the record was last updatedNo
upvote_countNumber of upvotes received by the itemNo
urlLink to access the resource or itemNo
view_countNumber of times the item has been viewedNo
visibilityAccess level of the itemNo
workspace_idUnique identifier for the workspace or environmentNo
workspace_nameName of the workspace associated with the itemNo

Custom Fields in Schema

Search AI allows you to extend the Unified Schema with up to 50 custom fields, so you can include additional data from third-party applications as searchable content. Custom fields can also be used in the Workbench — for example, to store LLM-generated summaries of ingested content.

Adding a New Field

  1. Click Manage Schema on the Manage Content page in the connector.
  2. Click +New Field.
  3. Provide the following details:
FieldDescription
Display NameUser-friendly name shown in the UI
Data Typestring or array
Field NameTechnical name used in scripts and field mapping. Use cfa1cfa5 for array fields and cfs1cfs45 for string fields
DescriptionBrief description of the field’s intended use

Field Mapping

By default, fields ingested from a connector are automatically mapped to the most appropriate unified schema fields. You can customize this mapping for specific business requirements. For example, a Google Drive connector maps the source field createdTime to the unified schema field createdOn by default. If you want to display last-modified-user information in search results, you can update the mapping to point lastModifyingUser.displayName to updatedBy. Implementing Field Mapping After an initial sync, view the connector’s response payload and map fields using a post-processor script:
  1. Go to the Field Mapping tab under Manage Content.
  2. The source payload shows the actual response from the connector. Required Search AI fields are listed in the right pane.
  3. Use the source payload and post-processor scripts to map source fields to unified schema fields. A default script is provided for each connector showing the default mappings.
Field Mapping Example: Mapping a date field If the source payload contains a createdAt field that should map to doc_created_on, add this line to the script: Source Payload
{
    "incidents": {
        "title": "I : System Outages duplicates ----",
        "content": "System Outages , Impact Start Date : 2025-04-04T12:14:32.419Z, Impact End Date : Mon May 12 2025 10:12:25 GMT+0000 (Coordinated Universal Time), Responders : User : John Doe , Actions : ",
        "type": "incident",
        "id": "79d68c5a-762f-4c0a-b412-49a6d75b92b0",
        "tinyId": "5",
        "status": "open",
        "labels": [
            "System Outages"
        ],
        "createdAt": "2025-04-04T12:14:32.419Z",
        "updatedAt": "2025-04-04T12:14:49.526Z",
        "priority": "P3",
        "responders": "User: John Doe, ",
        "actions": [],
        "impactStartDate": "2025-04-04T12:14:32.419Z",
        "impactEndDate": "2025-05-12T10:12:25.985Z"
    }
}
Script Update
context.doc_created_on  = context?.raw_json?.createdAt;
If a connector supports multiple object types, the source payload shows a combined set of fields for all objects. When mapping fields from two or more objects to custom fields, use separate custom fields for each object type:
context.cfs1 = context?.raw_json?.incidentTitle;
Context.cfs2 = context?.raw_json?.alertTitle;