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

# Search activities

> The append-only event feed of a person or company: channel, website and profile-view facts (private context, never repeated to the lead), workflow, object, tag and note changes. Scope with object_sid (the timeline), playtable_sid, play_sid, sender_profile_sid or involved_workflow_sid; created_at is when a fact reached the ledger; page_size 0 = counts.groups alone. Includes: person, company, play_acts, person_journey. Not for message bodies or workflow state.

Contract:
- MCP tool `search_activities`, registry package `mcp.playtables/activities`, mount `playtables.people`.
- Operation `search`, response envelope `search`.
- Flags: read only.



## OpenAPI

````yaml /api-reference/playtables/openapi.yaml post /api/activities/search
openapi: 3.0.3
info:
  title: 'GetSales public contract: gs.service.playtables'
  description: >-
    The data platform and the outreach engine: tables of people and companies,
    their enrichment columns, cells and runs, the data sources that feed them,
    sender profiles, the stoplist, the activity feed, the credit ledger, and the
    multichannel workflows with their per-person journeys and tasks.


    GENERATED. This document is projected from the Zod MCP tool registry in
    `product/mcp/gs.mcp` (one tool per public endpoint, 1:1). Do not edit it by
    hand; edit the tool definition and regenerate with `pnpm openapi:public`.


    Surface: the public `/api` contract of `gs.service.playtables`, 142
    operations. This is the only OpenAPI document the platform publishes.
    Internal (`/internal`) and health endpoints are deliberately absent: they
    are not part of any contract, they can change without notice, and the
    service source is their only description.


    Conventions:

    - Auth is a bearer JWT, optionally narrowed by the `Team-SID` header.

    - Every success body is an MCP envelope: `success: true` plus one typed
    `operation` shape (`search`, `get`, `create`, `update`, `delete`, `metrics`,
    `group_by`, `action`), and a `meta` block with `trace_id` for support.

    - Every failure is the same `McpError` envelope with a code from a fixed
    16-code taxonomy, so a client maps errors once.

    - Lists page with `page_size` (0 to 500, default 50) plus an opaque forward
    `cursor`; `page_size: 0` returns counts only.

    - On `GET` and `DELETE`, object-valued query parameters (`filter`, `sort`)
    travel as JSON text and array-valued ones repeat as `name[]=value`.

    - The MCP-only `_meta` field (usage analytics) never reaches the backend and
    is not part of this contract.
  version: '1.0'
  contact:
    name: GetSales
    url: https://getsales.io
    email: support@getsales.io
  license:
    name: Proprietary
    url: https://getsales.io/terms
servers:
  - url: https://beta.getsales.io/playtables/v1
    description: >-
      Production (the gateway path on the beta ring; the origin is provisioned
      per DEPLOY_MAP.md)
security:
  - BearerJwt: []
    TeamSid: []
tags:
  - name: activities
    description: >-
      Registry package `mcp.playtables/activities`, served on MCP mount
      `playtables.journeys`.
  - name: activity_objects
    description: >-
      Registry package `mcp.playtables/activity_objects`, served on MCP mount
      `playtables.people`.
  - name: companies
    description: >-
      Registry package `mcp.playtables/companies`, served on MCP mount
      `playtables.people`.
  - name: credit_ledger_entries
    description: >-
      Registry package `mcp.playtables/credit_ledger_entries`, served on MCP
      mount `id.billing`.
  - name: data_source_items
    description: >-
      Registry package `mcp.playtables/data_source_items`, served on MCP mount
      `playtables.sources`.
  - name: data_sources
    description: >-
      Registry package `mcp.playtables/data_sources`, served on MCP mount
      `playtables.sources`.
  - name: notes
    description: >-
      Registry package `mcp.playtables/notes`, served on MCP mount
      `playtables.pipeline`.
  - name: people
    description: >-
      Registry package `mcp.playtables/people`, served on MCP mount
      `playtables.people`.
  - name: pipeline_stages
    description: >-
      Registry package `mcp.playtables/pipeline_stages`, served on MCP mount
      `playtables.pipeline`.
  - name: plays
    description: >-
      Registry package `mcp.playtables/plays`, served on MCP mount
      `playtables.pipeline`.
  - name: playtable_field_values
    description: >-
      Registry package `mcp.playtables/playtable_field_values`, served on MCP
      mount `playtables.columns`.
  - name: playtable_fields
    description: >-
      Registry package `mcp.playtables/playtable_fields`, served on MCP mount
      `playtables.columns`.
  - name: playtable_runs
    description: >-
      Registry package `mcp.playtables/playtable_runs`, served on MCP mount
      `playtables.columns`.
  - name: playtable_views
    description: >-
      Registry package `mcp.playtables/playtable_views`, served on MCP mount
      `playtables.tables`.
  - name: playtables
    description: >-
      Registry package `mcp.playtables/playtables`, served on MCP mount
      `playtables.tables`.
  - name: result_pages
    description: >-
      Registry package `mcp.playtables/result_pages`, served on MCP mount
      `playtables.tables`.
  - name: sender_profiles
    description: >-
      Registry package `mcp.playtables/sender_profiles`, served on MCP mount
      `playtables.sources`.
  - name: stoplist_entries
    description: >-
      Registry package `mcp.playtables/stoplist_entries`, served on MCP mount
      `playtables.stoplist`.
  - name: tags
    description: >-
      Registry package `mcp.playtables/tags`, served on MCP mount
      `playtables.pipeline`.
  - name: workflow_attachments
    description: >-
      Registry package `mcp.playtables/workflow_attachments`, served on MCP
      mount `playtables.workflows`.
  - name: workflow_records
    description: >-
      Registry package `mcp.playtables/workflow_records`, served on MCP mount
      `playtables.journeys`.
  - name: workflow_sources
    description: >-
      Registry package `mcp.playtables/workflow_sources`, served on MCP mount
      `playtables.workflows`.
  - name: workflow_tasks
    description: >-
      Registry package `mcp.playtables/workflow_tasks`, served on MCP mount
      `playtables.journeys`.
  - name: workflow_versions
    description: >-
      Registry package `mcp.playtables/workflow_versions`, served on MCP mount
      `playtables.workflows`.
  - name: workflows
    description: >-
      Registry package `mcp.playtables/workflows`, served on MCP mount
      `playtables.workflows`.
paths:
  /api/activities/search:
    post:
      tags:
        - activities
      summary: Search activities
      description: >-
        The append-only event feed of a person or company: channel, website and
        profile-view facts (private context, never repeated to the lead),
        workflow, object, tag and note changes. Scope with object_sid (the
        timeline), playtable_sid, play_sid, sender_profile_sid or
        involved_workflow_sid; created_at is when a fact reached the ledger;
        page_size 0 = counts.groups alone. Includes: person, company, play_acts,
        person_journey. Not for message bodies or workflow state.


        Contract:

        - MCP tool `search_activities`, registry package
        `mcp.playtables/activities`, mount `playtables.people`.

        - Operation `search`, response envelope `search`.

        - Flags: read only.
      operationId: search_activities
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchActivitiesRequest'
      responses:
        '200':
          description: '`search` success envelope.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchActivitiesResponse'
        4XX:
          $ref: '#/components/responses/McpClientError'
        5XX:
          $ref: '#/components/responses/McpServerError'
components:
  schemas:
    SearchActivitiesRequest:
      type: object
      description: Request body of `search_activities`.
      properties:
        filter:
          type: object
          properties:
            sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^cr_ac_
                  description: Activity sid (cr_ac_…).
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^cr_ac_
                    description: Activity sid (cr_ac_…).
              additionalProperties: false
              description: Activity sid(s), cr_ac_ prefix (prefix-validated).
            object_type:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - person
                    - company
              additionalProperties: false
              description: person | company.
            object_sid:
              type: object
              properties:
                eq:
                  type: string
                in:
                  type: array
                  items:
                    type: string
              additionalProperties: false
              description: >-
                Timeline scope - cr_pp_/cr_co_ sid(s); `in` for company roll-ups
                (person sids from ./people.md search).
            category:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - object
                    - workflow
                    - ai_agent
                    - linkedin
                    - email
                    - website
                    - other
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - object
                      - workflow
                      - ai_agent
                      - linkedin
                      - email
                      - website
                      - other
                nin:
                  type: array
                  items:
                    type: string
                    enum:
                      - object
                      - workflow
                      - ai_agent
                      - linkedin
                      - email
                      - website
                      - other
              additionalProperties: false
              description: Type-group filter - cheaper than a long type.in list.
            type:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - object_created
                    - object_updated
                    - object_deleted
                    - object_playtable_changed
                    - object_pipeline_stage_changed
                    - tags_added
                    - tags_removed
                    - workflow_added
                    - workflow_restarted
                    - workflow_cancelled
                    - workflow_finished
                    - workflow_failed
                    - ai_agent_status_changed
                    - ai_agent_fact_saved
                    - linkedin_connection_request_sent
                    - linkedin_connection_request_accepted
                    - linkedin_connection_request_withdrawn
                    - linkedin_blocked
                    - linkedin_message_sent
                    - linkedin_inmail_sent
                    - linkedin_message_replied
                    - linkedin_inmail_replied
                    - linkedin_message_opened
                    - linkedin_link_clicked
                    - linkedin_post_liked
                    - linkedin_post_commented
                    - linkedin_profile_visited
                    - linkedin_skills_endorsed
                    - linkedin_invitation_received
                    - linkedin_invitation_accepted
                    - linkedin_invitation_ignored
                    - linkedin_invitation_expired
                    - linkedin_connection_removed
                    - linkedin_followed
                    - linkedin_message_reacted
                    - linkedin_message_deleted
                    - linkedin_profile_viewed_us
                    - email_sent
                    - email_replied
                    - email_opened
                    - email_bounced
                    - email_link_clicked
                    - email_unsubscribed
                    - email_complained
                    - website_visited
                    - website_key_page_visited
                    - website_form_submitted
                    - website_event
                    - manual_task_completed
                    - note_left
                    - object_enriched
                    - object_data_changed
                    - linkedin_job_changed
                    - linkedin_post_published
                    - linkedin_birthday
                    - linkedin_work_anniversary
                    - linkedin_profile_followed
                    - linkedin_post_engaged
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - object_created
                      - object_updated
                      - object_deleted
                      - object_playtable_changed
                      - object_pipeline_stage_changed
                      - tags_added
                      - tags_removed
                      - workflow_added
                      - workflow_restarted
                      - workflow_cancelled
                      - workflow_finished
                      - workflow_failed
                      - ai_agent_status_changed
                      - ai_agent_fact_saved
                      - linkedin_connection_request_sent
                      - linkedin_connection_request_accepted
                      - linkedin_connection_request_withdrawn
                      - linkedin_blocked
                      - linkedin_message_sent
                      - linkedin_inmail_sent
                      - linkedin_message_replied
                      - linkedin_inmail_replied
                      - linkedin_message_opened
                      - linkedin_link_clicked
                      - linkedin_post_liked
                      - linkedin_post_commented
                      - linkedin_profile_visited
                      - linkedin_skills_endorsed
                      - linkedin_invitation_received
                      - linkedin_invitation_accepted
                      - linkedin_invitation_ignored
                      - linkedin_invitation_expired
                      - linkedin_connection_removed
                      - linkedin_followed
                      - linkedin_message_reacted
                      - linkedin_message_deleted
                      - linkedin_profile_viewed_us
                      - email_sent
                      - email_replied
                      - email_opened
                      - email_bounced
                      - email_link_clicked
                      - email_unsubscribed
                      - email_complained
                      - website_visited
                      - website_key_page_visited
                      - website_form_submitted
                      - website_event
                      - manual_task_completed
                      - note_left
                      - object_enriched
                      - object_data_changed
                      - linkedin_job_changed
                      - linkedin_post_published
                      - linkedin_birthday
                      - linkedin_work_anniversary
                      - linkedin_profile_followed
                      - linkedin_post_engaged
                nin:
                  type: array
                  items:
                    type: string
                    enum:
                      - object_created
                      - object_updated
                      - object_deleted
                      - object_playtable_changed
                      - object_pipeline_stage_changed
                      - tags_added
                      - tags_removed
                      - workflow_added
                      - workflow_restarted
                      - workflow_cancelled
                      - workflow_finished
                      - workflow_failed
                      - ai_agent_status_changed
                      - ai_agent_fact_saved
                      - linkedin_connection_request_sent
                      - linkedin_connection_request_accepted
                      - linkedin_connection_request_withdrawn
                      - linkedin_blocked
                      - linkedin_message_sent
                      - linkedin_inmail_sent
                      - linkedin_message_replied
                      - linkedin_inmail_replied
                      - linkedin_message_opened
                      - linkedin_link_clicked
                      - linkedin_post_liked
                      - linkedin_post_commented
                      - linkedin_profile_visited
                      - linkedin_skills_endorsed
                      - linkedin_invitation_received
                      - linkedin_invitation_accepted
                      - linkedin_invitation_ignored
                      - linkedin_invitation_expired
                      - linkedin_connection_removed
                      - linkedin_followed
                      - linkedin_message_reacted
                      - linkedin_message_deleted
                      - linkedin_profile_viewed_us
                      - email_sent
                      - email_replied
                      - email_opened
                      - email_bounced
                      - email_link_clicked
                      - email_unsubscribed
                      - email_complained
                      - website_visited
                      - website_key_page_visited
                      - website_form_submitted
                      - website_event
                      - manual_task_completed
                      - note_left
                      - object_enriched
                      - object_data_changed
                      - linkedin_job_changed
                      - linkedin_post_published
                      - linkedin_birthday
                      - linkedin_work_anniversary
                      - linkedin_profile_followed
                      - linkedin_post_engaged
              additionalProperties: false
              description: Exact fact kinds.
            workflow_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^wf_wf_
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^wf_wf_
                is_null:
                  type: boolean
              additionalProperties: false
              description: wf_wf_ sid(s); is_null:true = facts outside any workflow.
            workflow_step_id:
              type: object
              properties:
                eq:
                  type: integer
                in:
                  type: array
                  items:
                    type: integer
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                The step id (within its workflow) the fact was produced by;
                is_null:true = facts outside any step.
            occurred_at:
              type: object
              properties:
                gte:
                  type: string
                lte:
                  type: string
                gt:
                  type: string
                lt:
                  type: string
              additionalProperties: false
              description: >-
                ISO 8601 range; combine bounds in one object. Ignored on metrics
                - period owns the window.
            playtable_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^pt_tb_
              additionalProperties: false
              description: >-
                A table's feed: the facts of its live people and the website
                facts of the accounts they work at. eq only.
            play_sid:
              type: object
              properties:
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^pt_pl_
              additionalProperties: false
              description: >-
                What plays caused: the people their find_people sources created
                (object_created) and the journeys their workflow sources began
                or started over (workflow_added, workflow_restarted). A
                non-empty in only.
            sender_profile_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^ub_sp_
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^ub_sp_
                  minItems: 1
                is_null:
                  type: boolean
              additionalProperties: false
              description: >-
                The sender profile a fact came through (ub_sp_). A fact no
                sender profile made (website, CRM, workflow) never passes this
                leaf, leave it out to keep them; is_null true keeps only such
                facts. One of eq, non-empty in or is_null; another prefix is a
                422.
            act_state:
              type: object
              properties:
                eq:
                  type: string
                  enum:
                    - waiting
                    - done
                    - none
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - waiting
                      - done
                      - none
              additionalProperties: false
              description: >-
                waiting = a task waits on the event (a draft, a question, a
                failed act); done = handled, nothing waiting (a task of any
                status names it, an act left its fact, a wait woke); none =
                nothing touched it, never a kind no play handles. eq or
                non-empty in.
            acted_play_sid:
              type: object
              properties:
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^pt_pl_
              additionalProperties: false
              description: >-
                The events those plays acted on, by a task or a fact naming the
                event. A non-empty in only.
            involved_sender_profile_sid:
              type: object
              properties:
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^ub_sp_
              additionalProperties: false
              description: >-
                The facts stamped with those sender profiles, and the events a
                task or a fact of theirs answers (a post carries no sender
                profile; the comment drafted on it does). A non-empty in only.
            involved_workflow_sid:
              type: object
              properties:
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^wf_wf_
              additionalProperties: false
              description: >-
                One campaign's events: the events of the people who hold or held
                a record of those workflows (a left journey counts) and the
                facts those workflows wrote. Wider than workflow_sid, which
                keeps the workflow's own facts alone. A non-empty in only.
            act_do:
              type: object
              properties:
                in:
                  type: array
                  items:
                    type: string
                    enum:
                      - like
                      - comment
                      - send_message
                      - ask
                      - add_to_workflow
              additionalProperties: false
              description: >-
                What an act did about the event, by a DONE task's act.do or the
                act's fact: like = linkedin_post_liked, comment =
                linkedin_post_commented, send_message = linkedin_message_sent;
                ask and add_to_workflow by the task alone. A non-empty in only.
            field_sid:
              type: object
              properties:
                eq:
                  type: string
                  minLength: 18
                  maxLength: 18
                  pattern: ^pt_fd_
                in:
                  type: array
                  items:
                    type: string
                    minLength: 18
                    maxLength: 18
                    pattern: ^pt_fd_
              additionalProperties: false
              description: >-
                The facts a column's pull wrote, read off payload.field_sid
                (object_enriched, object_data_changed, linkedin_job_changed,
                linkedin_post_published carry it): with object_sid, one cell's
                history. eq or a non-empty in; a sid outside pt_fd_ is a 422.
            created_at:
              type: object
              properties:
                gte:
                  type: string
                lte:
                  type: string
                gt:
                  type: string
                lt:
                  type: string
              additionalProperties: false
              description: >-
                ISO 8601 range on when the fact reached the ledger, which can be
                long after it happened (a history walk). New since I looked =
                created_at gt seen_at with an occurred_at floor (seen_at minus 3
                days); when it happened = occurred_at. On metrics too.
          description: >-
            Field filters, ANDed: {field: {eq | ne | in | nin | gte | lte | gt |
            lt | is_null}}; q inside it is free text. Omit for every row.
        include:
          type: array
          items:
            type: string
            enum:
              - person
              - company
              - play_acts
              - person_journey
          description: Relations to attach to every item; omit for the bare rows.
        sort:
          type: object
          properties:
            field:
              type: string
              enum:
                - occurred_at
              description: The column to order by.
            direction:
              type: string
              enum:
                - asc
                - desc
              description: asc or desc; default desc.
          required:
            - field
          description: One column and its direction; omit for the default order.
        page_size:
          type: integer
          minimum: 0
          maximum: 500
          description: 0..500, default 50; 0 = counts only, 1 = the first row.
        cursor:
          type: string
          nullable: true
          description: pagination.next_cursor of the previous page.
    SearchActivitiesResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        operation:
          type: string
          enum:
            - search
        items:
          type: array
          items:
            type: object
            properties:
              item:
                type: object
                properties:
                  sid:
                    type: string
                    description: Activity sid (cr_ac_…).
                  team_sid:
                    type: string
                    description: Owning team (ts_tm_…, external - gs.service.id).
                  object_type:
                    type: string
                    enum:
                      - person
                      - company
                    description: 'Which object the fact is about: person | company.'
                  object_sid:
                    type: string
                    description: >-
                      cr_pp_… (person) or cr_co_… (company) - the object the
                      fact attaches to.
                  category:
                    type: string
                    enum:
                      - object
                      - workflow
                      - ai_agent
                      - linkedin
                      - email
                      - website
                      - other
                    description: >-
                      The type's group - derived from type by the fixed
                      server-side map; stored for indexed channel filters.
                  type:
                    type: string
                    enum:
                      - object_created
                      - object_updated
                      - object_deleted
                      - object_playtable_changed
                      - object_pipeline_stage_changed
                      - tags_added
                      - tags_removed
                      - workflow_added
                      - workflow_restarted
                      - workflow_cancelled
                      - workflow_finished
                      - workflow_failed
                      - ai_agent_status_changed
                      - ai_agent_fact_saved
                      - linkedin_connection_request_sent
                      - linkedin_connection_request_accepted
                      - linkedin_connection_request_withdrawn
                      - linkedin_blocked
                      - linkedin_message_sent
                      - linkedin_inmail_sent
                      - linkedin_message_replied
                      - linkedin_inmail_replied
                      - linkedin_message_opened
                      - linkedin_link_clicked
                      - linkedin_post_liked
                      - linkedin_post_commented
                      - linkedin_profile_visited
                      - linkedin_skills_endorsed
                      - linkedin_invitation_received
                      - linkedin_invitation_accepted
                      - linkedin_invitation_ignored
                      - linkedin_invitation_expired
                      - linkedin_connection_removed
                      - linkedin_followed
                      - linkedin_message_reacted
                      - linkedin_message_deleted
                      - linkedin_profile_viewed_us
                      - email_sent
                      - email_replied
                      - email_opened
                      - email_bounced
                      - email_link_clicked
                      - email_unsubscribed
                      - email_complained
                      - website_visited
                      - website_key_page_visited
                      - website_form_submitted
                      - website_event
                      - manual_task_completed
                      - note_left
                      - object_enriched
                      - object_data_changed
                      - linkedin_job_changed
                      - linkedin_post_published
                      - linkedin_birthday
                      - linkedin_work_anniversary
                      - linkedin_profile_followed
                      - linkedin_post_engaged
                    description: >-
                      56-value fact vocabulary; past-tense fact label, not a
                      state.
                  payload:
                    anyOf:
                      - type: object
                        properties:
                          origin:
                            type: string
                            enum:
                              - recheck
                              - catch_up
                            description: Where the change was seen.
                          changes:
                            type: array
                            items:
                              type: object
                              properties:
                                key:
                                  type: string
                                  maxLength: 128
                                  description: The answer's path (headline, company.name).
                                label:
                                  type: string
                                  maxLength: 128
                                  description: The word the row shows for it.
                                old:
                                  description: The value before.
                                new:
                                  description: The value after.
                              required:
                                - key
                                - label
                            minItems: 1
                            description: >-
                              The title and the company, old and new, with every
                              other key field that moved beside them.
                          field_sid:
                            type: string
                            nullable: true
                            description: >-
                              pt_fd_… the column that re-checked; null from the
                              catch-up feed.
                          column:
                            type: string
                            nullable: true
                            description: >-
                              The column's name at the time; null from the
                              catch-up feed.
                          source:
                            type: string
                            nullable: true
                            enum:
                              - linkedin_profile
                              - company_page
                              - work_email
                              - phone
                              - posts
                              - people
                              - api
                            description: What was read; null from the catch-up feed.
                          sender_profile_sid:
                            type: string
                            nullable: true
                            description: >-
                              ub_sp_… the sender profile whose catch-up feed
                              carried the card; null on a re-check.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: >-
                              The gtm LinkedIn account that read the card; null
                              on a re-check.
                        required:
                          - origin
                          - changes
                      - type: object
                        properties:
                          field_sid:
                            type: string
                            description: pt_fd_… the column that pulled.
                          column:
                            type: string
                            description: The column's name at the time.
                          source:
                            type: string
                            enum:
                              - linkedin_profile
                              - company_page
                              - work_email
                              - phone
                              - posts
                              - people
                              - api
                            description: What was read.
                          changes:
                            type: array
                            items:
                              type: object
                              properties:
                                key:
                                  type: string
                                  maxLength: 128
                                  description: The answer's path (headline, company.name).
                                label:
                                  type: string
                                  maxLength: 128
                                  description: The word the row shows for it.
                                old:
                                  description: The value before.
                                new:
                                  description: The value after.
                              required:
                                - key
                                - label
                            minItems: 1
                            description: Every key field that moved, old and new.
                        required:
                          - field_sid
                          - column
                          - source
                          - changes
                      - type: object
                        properties:
                          field_sid:
                            type: string
                            description: >-
                              pt_fd_… the column that pulled - see
                              ./playtable_fields.md.
                          column:
                            type: string
                            description: The column's name at the time.
                          source:
                            type: string
                            enum:
                              - linkedin_profile
                              - company_page
                              - work_email
                              - phone
                              - posts
                              - people
                              - api
                            description: What was read.
                          first:
                            type: boolean
                            description: >-
                              true = Enriched: the first pull of this column for
                              the row that came back with an answer; false =
                              Re-checked, every later one, changes or not.
                          outcome:
                            type: string
                            enum:
                              - found
                              - nothing_found
                              - not_verified
                            description: What came back.
                          fields:
                            type: integer
                            minimum: 0
                            description: How many of the answer's fields carried a value.
                          from_cache:
                            type: boolean
                            nullable: true
                            description: >-
                              true when the answer came from the cache rather
                              than the network.
                          credits:
                            type: number
                            nullable: true
                            minimum: 0
                            description: What the pull cost, in credits.
                          run_sid:
                            type: string
                            nullable: true
                            description: >-
                              pt_rn_… the run that made the pull - see
                              ./playtable_runs.md.
                          values:
                            type: array
                            nullable: true
                            items:
                              type: object
                              properties:
                                key:
                                  type: string
                                  description: >-
                                    The key field's path in the answer (a
                                    search's is `value`).
                                label:
                                  type: string
                                  description: >-
                                    The word the row shows: Name, Headline,
                                    Title, Company, Location; Name, Industry,
                                    Size, Headquarters, Website; Work email;
                                    Phone.
                                value:
                                  type: string
                                  description: >-
                                    The value as a change compares it, at most
                                    500 characters.
                              required:
                                - key
                                - label
                                - value
                            maxItems: 8
                            description: >-
                              The source's key fields that carry a value in this
                              answer, in the source's order (2026-10-15): what
                              the Enriched row's tree shows. [] when the answer
                              held none (a search that found nothing); null for
                              posts, people and api, which name no key fields;
                              absent on facts written before.
                          verdict:
                            type: string
                            nullable: true
                            description: >-
                              The email verifier's word on the address a work
                              email search kept (valid, catch_all, unknown,
                              risky; catch_all, unknown and risky make the
                              outcome not_verified); null for every other source
                              and when no verifier spoke.
                        required:
                          - field_sid
                          - column
                          - source
                          - first
                          - outcome
                          - fields
                      - type: object
                        properties:
                          activity_urn:
                            type: string
                            description: >-
                              The post's activity URN, the one a Like or a
                              comment addresses.
                          kind:
                            type: string
                            enum:
                              - post
                              - repost_with_comment
                            description: >-
                              The person's own post, or a repost with their own
                              words.
                          excerpt:
                            type: string
                            description: >-
                              The post's text cut at 140 characters, the
                              whitespace flattened; may be empty.
                          text:
                            type: string
                            nullable: true
                            maxLength: 3000
                            description: >-
                              The whole post, its line breaks kept, 3000
                              characters at most (2026-10-15); absent on older
                              facts.
                          post_urn:
                            type: string
                            nullable: true
                            description: The post's share or ugcPost URN, when it has one.
                          posted_at:
                            type: string
                            nullable: true
                            description: >-
                              ISO 8601 UTC - when the post was published, as the
                              network said.
                          field_sid:
                            type: string
                            nullable: true
                            description: >-
                              pt_fd_… the column that read the posts; null when
                              a workflow step's read wrote the fact.
                          column:
                            type: string
                            nullable: true
                            description: The column's name at the time.
                          likes:
                            type: integer
                            minimum: 0
                            description: The network's count at the read.
                          comments:
                            type: integer
                            minimum: 0
                            description: The network's count at the read.
                          reposts:
                            type: integer
                            minimum: 0
                            description: The network's count at the read.
                          images:
                            type: integer
                            minimum: 0
                            description: >-
                              How many images the post carries; their copies
                              come with the re-host, never a URL here.
                          reactions:
                            type: object
                            nullable: true
                            additionalProperties:
                              type: integer
                              minimum: 0
                            description: >-
                              The count by reaction kind as the read names the
                              kinds (LIKE, EMPATHY, PRAISE, INTEREST,
                              APPRECIATION, ENTERTAINMENT), 2026-10-15; null
                              when the read carried none.
                        required:
                          - activity_urn
                          - kind
                          - excerpt
                          - likes
                          - comments
                          - reposts
                          - images
                      - type: object
                        properties:
                          activity_urn:
                            type: string
                            description: The watched post's activity URN, never a URL.
                          kind:
                            type: string
                            enum:
                              - reaction
                              - comment
                              - reshare
                            description: A reaction, a comment or a reshare.
                          data_source_sid:
                            type: string
                            description: >-
                              ds_sc_… the engagers source that saw it - see
                              ./data_sources.md.
                          reaction:
                            type: string
                            nullable: true
                            description: >-
                              The reaction's name (like, celebrate, …) when the
                              kind is a reaction.
                          author_name:
                            type: string
                            nullable: true
                            description: The post author's name, for the row.
                          excerpt:
                            type: string
                            nullable: true
                            description: >-
                              The post's text cut at 140 characters, for the
                              row.
                          engaged_at:
                            type: string
                            nullable: true
                            description: >-
                              ISO 8601 UTC - when the engagement happened, when
                              the network said.
                        required:
                          - activity_urn
                          - kind
                          - data_source_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          year:
                            type: integer
                            description: >-
                              The year the card is for: the dedup key with the
                              kind.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: The gtm LinkedIn account that read the card.
                          card_sid:
                            type: string
                            nullable: true
                            description: The feed card's URN.
                          text:
                            type: string
                            nullable: true
                            description: The card's own words, for the row.
                        required:
                          - sender_profile_sid
                          - year
                      - type: object
                        properties:
                          playtable_sid:
                            type: string
                            nullable: true
                            description: >-
                              pt_tb_… table the object landed in - see
                              ./playtables.md.
                          data_source_sid:
                            type: string
                            nullable: true
                            description: >-
                              ds_sc_… source that produced the object - see
                              ./data_sources.md.
                          data_source_item_sid:
                            type: string
                            nullable: true
                            description: >-
                              ds_it_… item the object was promoted from - see
                              ./data_source_items.md.
                          tags:
                            type: array
                            nullable: true
                            items: {}
                            description: >-
                              Tags attached at creation; element shape deferred
                              in research (see tags_added for the {sid, name}
                              snapshot convention).
                          qualified:
                            type: boolean
                            nullable: true
                            description: >-
                              true = born from an item of a data source whose
                              Check on save was on, so the record passed the
                              source's criterion (2026-10-15). null otherwise
                              (no gate, a hand row, the rows born before the
                              stamp); never false: a record the gate turns away
                              is never born.
                        required:
                          - playtable_sid
                          - data_source_sid
                          - data_source_item_sid
                          - tags
                      - type: object
                        properties:
                          fields:
                            type: array
                            items:
                              type: string
                            description: Changed field names.
                          old:
                            type: object
                            additionalProperties: {}
                            description: Previous values, keyed by field.
                          new:
                            type: object
                            additionalProperties: {}
                            description: New values, keyed by field.
                        required:
                          - fields
                          - old
                          - new
                      - type: object
                        properties:
                          old:
                            type: string
                            description: pt_tb_… membership before the move.
                          new:
                            type: string
                            description: pt_tb_… membership after the move.
                          data_source_sid:
                            type: string
                            nullable: true
                            description: ds_sc_… when a source import triggered the move.
                        required:
                          - old
                          - new
                          - data_source_sid
                      - type: object
                        properties:
                          name:
                            type: string
                            description: >-
                              Tombstone snapshot - object display name at
                              deletion time.
                        required:
                          - name
                      - type: object
                        properties:
                          tags:
                            type: array
                            items:
                              type: object
                              properties:
                                sid:
                                  type: string
                                  description: cr_tg_… tag - see ./tags.md.
                                name:
                                  type: string
                                  description: Tag name snapshot at event time.
                              required:
                                - sid
                                - name
                            description: >-
                              Tags added/removed in this change, with name
                              snapshots.
                        required:
                          - tags
                      - type: object
                        properties:
                          reason:
                            type: string
                            nullable: true
                            description: Human-readable cancellation reason.
                        required:
                          - reason
                      - type: object
                        properties:
                          reason:
                            type: string
                            description: Human-readable failure reason.
                        required:
                          - reason
                      - type: object
                        properties:
                          old:
                            type: string
                            description: >-
                              Previous AI SDR status (Messaging-owned
                              vocabulary).
                          new:
                            type: string
                            description: New AI SDR status.
                          message_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging message that triggered the
                              change; null when none.
                          channel:
                            type: string
                            nullable: true
                            description: >-
                              Channel the status change relates to
                              (Messaging-owned); null when not channel-bound.
                        required:
                          - old
                          - new
                          - message_sid
                          - channel
                      - type: object
                        properties:
                          fact:
                            type: string
                            maxLength: 64
                            description: >-
                              The fact as the Playbook question names it
                              ("Channel", "Their tool").
                          question:
                            type: string
                            maxLength: 255
                            description: The question in the agent's words.
                          answer:
                            type: string
                            maxLength: 512
                            description: >-
                              The lead's answer, clamped server-side; untrusted
                              text.
                          conversation_sid:
                            type: string
                            description: The unibox thread it was learned on (ub_cv_...).
                          run_sid:
                            type: string
                            nullable: true
                            description: >-
                              The dialog turn that heard it (ub_rn_...); null
                              when unknown.
                          changed:
                            type: boolean
                            description: >-
                              true when it replaced an earlier answer to the
                              same question on this thread.
                        required:
                          - fact
                          - question
                          - answer
                          - conversation_sid
                          - run_sid
                          - changed
                      - type: object
                        properties:
                          workflow_task_sid:
                            type: string
                            description: >-
                              wf_tk_… completed manual task - see
                              ./workflow_tasks.md (legacy task_uuid).
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging LinkedIn account, when the task
                              was LinkedIn-scoped.
                        required:
                          - workflow_task_sid
                          - sender_profile_sid
                          - linkedin_account_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                          invitation_sid:
                            type: string
                            description: ln_ci_… the gtm invitation row.
                          note:
                            type: string
                            nullable: true
                            description: The lead's invitation text; null when none.
                          source:
                            type: string
                            nullable: true
                            description: >-
                              How the end was learned, action | sync; null on
                              the receipt.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                          - invitation_sid
                          - note
                          - source
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                          connection_sid:
                            type: string
                            description: ln_cn_… the gtm connection row that was severed.
                          removal_kind:
                            type: string
                            nullable: true
                            description: >-
                              removed (the lead removed us) | blocked (the
                              account was blocked); null when unknown.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                          - connection_sid
                          - removal_kind
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                          block_log_sid:
                            type: string
                            description: >-
                              The gtm linkedin-account-block-log row: the
                              verdict, permanent for the account and the person.
                          connection_sid:
                            type: string
                            nullable: true
                            description: >-
                              ln_cn_… the connection the block closed, when they
                              were one; null otherwise.
                          activity_log_sid:
                            type: string
                            nullable: true
                            description: >-
                              ln_al_… the read of gtm's activity log that
                              established the block; null when unknown.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                          - block_log_sid
                          - connection_sid
                          - activity_log_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                          follower_sid:
                            type: string
                            description: ln_fw_… the gtm follower row.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                          - follower_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                          message_sid:
                            type: string
                            description: >-
                              External Messaging message id (legacy
                              email_uuid/message_uuid).
                          emoji:
                            type: string
                            description: The reaction, as LinkedIn reports it.
                          count:
                            type: integer
                            nullable: true
                            description: >-
                              How many of the lead's side reacted with it; null
                              when unknown.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                          - message_sid
                          - emoji
                          - count
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… the sender profile whose profile was
                              looked at (the one the collector named: one sid on
                              unibox and on the playtables copy) - see
                              ./sender_profiles.md.
                          times_seen:
                            type: integer
                            minimum: 1
                            description: >-
                              How many runs of the collector listed the viewer:
                              the first sighting and every re-view since.
                          first_seen_at:
                            type: string
                            description: >-
                              ISO 8601 UTC: when the collector first saw this
                              viewer on this sender profile; the fact's
                              occurred_at on the first sighting.
                          is_return:
                            type: boolean
                            description: >-
                              True on a re-sighting after thirty days of absence
                              (a second fact under a dated key); false on the
                              first sighting.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: >-
                              The gtm account the list was read on; null when
                              unknown.
                          viewed_at_text:
                            type: string
                            nullable: true
                            description: >-
                              The relative text LinkedIn printed last ("2 days
                              ago"); null when none.
                          display_name:
                            type: string
                            nullable: true
                            description: >-
                              The viewer's name as the list printed it at that
                              moment; null when none.
                          headline:
                            type: string
                            nullable: true
                            description: >-
                              The viewer's headline as the list printed it; null
                              when none.
                        required:
                          - sender_profile_sid
                          - times_seen
                          - first_seen_at
                          - is_return
                          - linkedin_account_sid
                          - viewed_at_text
                          - display_name
                          - headline
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          mailbox_sid:
                            type: string
                            nullable: true
                            description: External Messaging mailbox.
                          message_sid:
                            type: string
                            description: >-
                              External Messaging message id (legacy
                              email_uuid/message_uuid).
                          bounce_log_sid:
                            type: string
                            nullable: true
                            description: >-
                              em_bl_… gtm's bounce log row behind the complaint;
                              null when it did not ride the event.
                        required:
                          - sender_profile_sid
                          - mailbox_sid
                          - message_sid
                          - bounce_log_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                          message_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging message id (legacy
                              email_uuid/message_uuid).
                          template_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging template; null when no template
                              was used.
                          connected_at:
                            type: string
                            description: ISO 8601 UTC - when the connection was accepted.
                          note_delivered:
                            type: boolean
                            nullable: true
                            description: >-
                              Whether the invite's note reached the thread as
                              its first message at the accept (LinkedIn delivers
                              it then, 2026-09-26): true when the invite went
                              through the ledger with a note, false without one
                              or when no invite of ours went (an
                              already-connected accept), null when no ledger
                              task sent the invite. With the messages sent, the
                              base of the messages' reply rate.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                          - message_sid
                          - template_sid
                          - connected_at
                          - note_delivered
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                          endorsed_count:
                            type: integer
                            minimum: 0
                            description: Number of skills endorsed.
                          skills:
                            type: array
                            items:
                              type: string
                            description: Endorsed skill names.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                          - endorsed_count
                          - skills
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                          message_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging message id (legacy
                              email_uuid/message_uuid).
                          template_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging template; null when no template
                              was used.
                          tracking_id:
                            type: string
                            description: Tracking id of the clicked link.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                          - message_sid
                          - template_sid
                          - tracking_id
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                          message_sid:
                            type: string
                            description: >-
                              External Messaging message id (legacy
                              email_uuid/message_uuid).
                          template_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging template; null when no template
                              was used.
                          replied_message_sid:
                            type: string
                            nullable: true
                            description: >-
                              Our message that was replied to; null when not
                              resolvable.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                          - message_sid
                          - template_sid
                          - replied_message_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                          message_sid:
                            type: string
                            description: >-
                              External Messaging message id (legacy
                              email_uuid/message_uuid).
                          template_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging template; null when no template
                              was used.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                          - message_sid
                          - template_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                          message_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging message id (legacy
                              email_uuid/message_uuid).
                          template_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging template; null when no template
                              was used.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                          - message_sid
                          - template_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: The gtm LinkedIn account that followed.
                        required:
                          - sender_profile_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          linkedin_account_sid:
                            type: string
                            nullable: true
                            description: External Messaging LinkedIn account.
                        required:
                          - sender_profile_sid
                          - linkedin_account_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          mailbox_sid:
                            type: string
                            nullable: true
                            description: External Messaging mailbox.
                          message_sid:
                            type: string
                            description: >-
                              External Messaging message id (legacy
                              email_uuid/message_uuid).
                          template_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging template; null when no template
                              was used.
                          replied_message_sid:
                            type: string
                            nullable: true
                            description: >-
                              Our message that was replied to; null when not
                              resolvable.
                        required:
                          - sender_profile_sid
                          - mailbox_sid
                          - message_sid
                          - template_sid
                          - replied_message_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          mailbox_sid:
                            type: string
                            nullable: true
                            description: External Messaging mailbox.
                          message_sid:
                            type: string
                            description: >-
                              External Messaging message id (legacy
                              email_uuid/message_uuid).
                          template_sid:
                            type: string
                            nullable: true
                            description: >-
                              External Messaging template; null when no template
                              was used.
                        required:
                          - sender_profile_sid
                          - mailbox_sid
                          - message_sid
                          - template_sid
                      - type: object
                        properties:
                          sender_profile_sid:
                            type: string
                            description: >-
                              ub_sp_… sender profile that acted - see
                              ./sender_profiles.md.
                          mailbox_sid:
                            type: string
                            nullable: true
                            description: External Messaging mailbox.
                          message_sid:
                            type: string
                            description: >-
                              External Messaging message id (legacy
                              email_uuid/message_uuid).
                          bounce_type:
                            type: string
                            nullable: true
                            description: >-
                              hard | soft | policy, gtm's classification
                              (2026-09-28); null on facts written before it.
                        required:
                          - sender_profile_sid
                          - mailbox_sid
                          - message_sid
                          - bounce_type
                      - type: object
                        properties:
                          session_sid:
                            type: string
                            description: >-
                              sg_ws_... the session in gs.service.signals
                              (get_website_session reads its pages and events).
                          site_sid:
                            type: string
                            description: sg_si_... the registered site the visit landed on.
                          attribution:
                            type: string
                            description: >-
                              How the owner was named: code (the person code in
                              our link), identified (an identify call or a
                              form), fingerprint (the device), manual (a bind by
                              hand), company_code (the company code in our link)
                              and company_network (the visitor's network), both
                              with the company as the object. The signals
                              service's vocabulary, stored as told.
                          entry_path:
                            type: string
                            nullable: true
                            description: The path of the first page view, with its query.
                          referrer_type:
                            type: string
                            nullable: true
                            description: >-
                              direct | internal | search | social | email | ads
                              | referral | ai_assistant | unknown.
                          utm_source:
                            type: string
                            nullable: true
                          utm_campaign:
                            type: string
                            nullable: true
                          landing_code_used:
                            type: boolean
                            nullable: true
                            description: >-
                              A code in our link named the owner: the person
                              code (attribution code) or the company code
                              (company_code).
                          visitor_sid:
                            type: string
                            nullable: true
                            description: sg_wv_... the browser behind the visit.
                        required:
                          - session_sid
                          - site_sid
                          - attribution
                      - type: object
                        properties:
                          session_sid:
                            type: string
                            description: >-
                              sg_ws_... the session in gs.service.signals
                              (get_website_session reads its pages and events).
                          key_page_sid:
                            type: string
                            description: sg_kp_... the key page whose pattern matched.
                          key:
                            type: string
                            description: >-
                              The key page's slug (pricing, demo, signup,
                              contact, or one the team added).
                          path:
                            type: string
                            nullable: true
                            description: The path that matched the pattern.
                        required:
                          - session_sid
                          - key_page_sid
                          - key
                      - type: object
                        properties:
                          session_sid:
                            type: string
                            description: >-
                              sg_ws_... the session in gs.service.signals
                              (get_website_session reads its pages and events).
                          form:
                            type: string
                            description: The form's name as the site reported it.
                          visitor_sid:
                            type: string
                            nullable: true
                            description: sg_wv_... the browser the form was submitted from.
                        required:
                          - session_sid
                          - form
                      - type: object
                        properties:
                          session_sid:
                            type: string
                            description: >-
                              sg_ws_... the session in gs.service.signals
                              (get_website_session reads its pages and events).
                          event:
                            type: string
                            description: The registered event name, as the site sent it.
                          props:
                            anyOf:
                              - type: object
                                additionalProperties: {}
                              - type: array
                                items: {}
                              - {}
                            description: >-
                              The event's properties as sent, 50 keys at most;
                              [] when empty.
                        required:
                          - session_sid
                          - event
                      - type: object
                        properties:
                          note_sid:
                            type: string
                            description: >-
                              cr_nt_… the note - see ./notes.md (legacy
                              note_uuid).
                        required:
                          - note_sid
                      - type: object
                        additionalProperties: {}
                      - type: array
                        items: {}
                    description: >-
                      Per-type references (sids, tracking ids, reasons) - never
                      message bodies. Shape keyed by the sibling type field.
                  workflow_sid:
                    type: string
                    nullable: true
                    description: >-
                      wf_wf_… when a workflow produced the fact - see
                      ./workflows.md; null otherwise.
                  workflow_step_id:
                    type: integer
                    nullable: true
                    minimum: 0
                    description: >-
                      Step id inside the version's steps JSON - see
                      ./workflow_versions.md step-id contract.
                  workflow_record_sid:
                    type: string
                    nullable: true
                    description: >-
                      wf_rc_… enrollment that produced the fact - see
                      ./workflow_records.md.
                  external_sid:
                    type: string
                    nullable: true
                    description: >-
                      Messaging event id (max 64) - ingest dedup key; null on
                      in-process rows.
                  occurred_at:
                    type: string
                    description: ISO 8601 UTC - fact time at source; the timeline sort key.
                  created_by:
                    type: object
                    properties:
                      actor_type:
                        type: string
                        enum:
                          - user
                          - support
                          - api_key
                          - system
                          - agent
                      actor_sid:
                        type: string
                        nullable: true
                      team_sid:
                        type: string
                      actor_name:
                        type: string
                        nullable: true
                        description: >-
                          The OAuth client that acted ("Claude", "n8n"); null
                          for a user, an API key or a system job.
                      oauth_client_sid:
                        type: string
                        nullable: true
                        description: >-
                          The acting OAuth client (id_oc_*); null off the OAuth
                          path.
                      reason:
                        type: string
                        nullable: true
                        description: >-
                          Why a system actor wrote the row
                          (snapshot_capture_job, ...); null otherwise.
                      permissions:
                        type: object
                        additionalProperties: {}
                        description: >-
                          Internal audit context: the grant set the actor held
                          at write time. Not a contract.
                      cluster_id:
                        type: integer
                        nullable: true
                        description: >-
                          Internal audit context: the cluster that served the
                          write.
                      trace_id:
                        type: string
                        nullable: true
                        description: >-
                          Internal audit context: the trace id of the request
                          that wrote the row.
                    required:
                      - actor_type
                      - actor_sid
                      - team_sid
                      - permissions
                    description: Recording actor; actor_type=system on ingested rows.
                  created_at:
                    type: string
                    description: >-
                      ISO 8601 UTC - row write time (ingest lag vs occurred_at
                      possible).
                  updated_at:
                    type: string
                    description: ISO 8601 UTC - always equals created_at (no update path).
                required:
                  - sid
                  - team_sid
                  - object_type
                  - object_sid
                  - category
                  - type
                  - payload
                  - workflow_sid
                  - workflow_step_id
                  - workflow_record_sid
                  - external_sid
                  - occurred_at
                  - created_by
                  - created_at
                  - updated_at
              included:
                type: object
                properties:
                  person:
                    type: object
                    properties:
                      sid:
                        type: string
                    required:
                      - sid
                    description: >-
                      PeopleDomain row (cr_pp_…) - see ./people.md; present on
                      object_type=person rows when requested.
                  company:
                    type: object
                    properties:
                      sid:
                        type: string
                    required:
                      - sid
                    description: >-
                      CompanyDomain row (cr_co_…) - see ./companies.md; present
                      on object_type=company rows when requested.
                  play_acts:
                    type: object
                    properties:
                      tasks:
                        type: array
                        items:
                          type: object
                          properties:
                            sid:
                              type: string
                          required:
                            - sid
                        description: >-
                          The workflow tasks naming this row as their trigger
                          (WorkflowTaskDomain rows, see ./workflow_tasks.md),
                          any status, oldest first: a play's (a draft waiting, a
                          reaction sent, a question answered), a person's act by
                          hand (initiator user, 2026-10-15), a journey's Like or
                          comment on the post its read picked (2026-10-15). A
                          journey's wait is the journey instead.
                      facts:
                        type: array
                        items:
                          type: object
                          properties:
                            sid:
                              type: string
                          required:
                            - sid
                        description: >-
                          The facts an act left naming this row as their trigger
                          (ActivityDomain rows), oldest first: the comment, the
                          message, the journey entered or left.
                      plays:
                        type: array
                        items:
                          type: object
                          properties:
                            sid:
                              type: string
                              minLength: 18
                              maxLength: 18
                              pattern: ^pt_pl_
                            name:
                              type: string
                            catalog_key:
                              type: string
                              nullable: true
                              description: >-
                                The playbook entry the play was born from
                                (PlayCatalogKeyEnum); null for a play saved from
                                a view.
                            action_type:
                              type: string
                              enum:
                                - find_people
                                - add_to_workflow
                                - refresh
                                - congratulate
                                - on_job_change
                                - engage_posts
                                - on_website_visit
                            deleted_at:
                              type: string
                              nullable: true
                              description: >-
                                ISO 8601 UTC when the play was deleted; its name
                                still reads.
                          required:
                            - sid
                            - name
                            - catalog_key
                            - action_type
                            - deleted_at
                        description: >-
                          Every play the row, its tasks, its facts and its
                          passes name, deleted ones included so the name still
                          reads.
                      journey:
                        type: object
                        nullable: true
                        properties:
                          workflow_sid:
                            type: string
                          workflow_record_sid:
                            type: string
                          record_status:
                            type: string
                            nullable: true
                            enum:
                              - waiting_limit
                              - blocked
                              - active
                              - waiting
                              - paused_on_reply
                              - paused_manual
                              - paused_blocked
                              - failed
                              - completed
                              - exited
                            description: >-
                              The journey's status now; null only when the
                              record is gone.
                          workflow_name:
                            type: string
                            nullable: true
                            description: >-
                              The workflow's name, read with the deleted ones
                              (2026-10-15); null only when the row is gone.
                          next:
                            type: object
                            nullable: true
                            properties:
                              step_id:
                                type: integer
                              step_ordinal:
                                type: integer
                                nullable: true
                                minimum: 0
                                exclusiveMinimum: true
                                description: >-
                                  1-based place of the step in the pinned
                                  version, depth first ("step 3 of 5"); null
                                  when the version does not have it.
                              step_count:
                                type: integer
                                nullable: true
                                minimum: 0
                                exclusiveMinimum: true
                                description: >-
                                  Steps in the pinned version, nested ones and
                                  end steps counted; null with step_ordinal.
                              step_type:
                                type: string
                                nullable: true
                                description: >-
                                  The step's type in the version
                                  (WorkflowStepTypeEnum: linkedin_send_message,
                                  email_send, condition, ...); null with
                                  step_ordinal.
                              status:
                                type: string
                                enum:
                                  - pending
                                  - scheduled
                                  - dispatched
                                  - done
                                  - failed
                                  - skipped
                                  - skipped_reply
                                  - skipped_stoplisted
                                  - cancelled
                                  - expired
                              at:
                                type: string
                                description: >-
                                  ISO 8601 UTC: finished_at, else scheduled_at,
                                  else created_at.
                              text:
                                type: string
                                nullable: true
                                description: >-
                                  The words the task sends (its message, comment
                                  or email body as rendered, perhaps edited
                                  since), 2026-10-15; null for a step that sends
                                  nothing.
                            required:
                              - step_id
                              - step_ordinal
                              - step_count
                              - step_type
                              - status
                              - at
                              - text
                            description: >-
                              The record's first task after the wait (another
                              wait or a play's question skipped), whatever its
                              status; null when nothing follows yet.
                        required:
                          - workflow_sid
                          - workflow_record_sid
                          - record_status
                          - workflow_name
                          - next
                        description: >-
                          The workflow that acted on the event: a journey's
                          wait_for_event the event woke (the wait names it as
                          its trigger), with the step that followed. Null when
                          no journey waited on it.
                      records:
                        type: object
                        additionalProperties:
                          type: object
                          properties:
                            workflow_sid:
                              type: string
                            status:
                              type: string
                              enum:
                                - waiting_limit
                                - blocked
                                - active
                                - waiting
                                - paused_on_reply
                                - paused_manual
                                - paused_blocked
                                - failed
                                - completed
                                - exited
                            current_step_id:
                              type: integer
                              nullable: true
                            step_ordinal:
                              type: integer
                              nullable: true
                              minimum: 0
                              exclusiveMinimum: true
                              description: >-
                                1-based place of the step in the pinned version,
                                depth first ("step 3 of 5"); null when the
                                version does not have it.
                            step_count:
                              type: integer
                              nullable: true
                              minimum: 0
                              exclusiveMinimum: true
                              description: >-
                                Steps in the pinned version, nested ones and end
                                steps counted; null with step_ordinal.
                            step_type:
                              type: string
                              nullable: true
                              description: >-
                                The step's type in the version
                                (WorkflowStepTypeEnum: linkedin_send_message,
                                email_send, condition, ...); null with
                                step_ordinal.
                          required:
                            - workflow_sid
                            - status
                            - current_step_id
                            - step_ordinal
                            - step_count
                            - step_type
                        description: >-
                          The journeys the row's play tasks ask about (a
                          question names its record), keyed by
                          workflow_record_sid, each with its current step's
                          place. An empty object when none.
                      passes:
                        type: array
                        items:
                          type: object
                          properties:
                            play_sid:
                              type: string
                              minLength: 18
                              maxLength: 18
                              pattern: ^pt_pl_
                              description: The play that passed; named in plays.
                            reason:
                              type: string
                              enum:
                                - outside_audience
                                - act_failed
                                - moment_off
                                - no_connected_sender_profile
                                - empty_message
                                - no_journey
                                - journey_moved_on
                                - nothing_to_do
                                - post_unnamed
                                - post_too_old
                                - weekly_cap
                                - no_sender_profile
                                - comment_not_written
                                - already_engaged
                                - page_not_watched
                                - workflow_unnamed
                                - already_in_workflow
                              description: >-
                                Why it passed on the event (the newest run's
                                reason).
                            at:
                              type: string
                              description: >-
                                ISO 8601 UTC: when a run last passed for this
                                reason.
                          required:
                            - play_sid
                            - reason
                            - at
                        description: >-
                          Why a play that watches the event passed on it
                          (2026-10-15), one per play: the moment off, nobody
                          connected, the weekly cap, a post too old, the person
                          outside the audience, another hand's Like or comment
                          on the post already. Empty when no play passed.
                      acts_as:
                        type: object
                        nullable: true
                        properties:
                          sender_profile_sid:
                            type: string
                            minLength: 18
                            maxLength: 18
                            pattern: ^ub_sp_
                        required:
                          - sender_profile_sid
                        description: >-
                          The sender profile act_on_activity would act as when
                          given none (2026-10-15): on a post the connected one,
                          else the team's first that can; on any other person's
                          event the one the fact came through, else the
                          connected one. Null for a company's event or when
                          nobody can.
                      invite:
                        type: object
                        nullable: true
                        properties:
                          sent_at:
                            type: string
                            description: >-
                              ISO 8601 UTC: when the invitation went out (the
                              invite task's finished_at).
                          workflow_sid:
                            type: string
                            nullable: true
                            description: The journey that sent it (wf_wf_).
                          workflow_record_sid:
                            type: string
                            nullable: true
                            description: Its record (wf_rc_).
                        required:
                          - sent_at
                          - workflow_sid
                          - workflow_record_sid
                        description: >-
                          On a linkedin_connection_request_accepted row
                          (2026-10-16): the invitation the accept answers, the
                          person's newest done linkedin_send_connection_request
                          task finished before the accept (a deleted journey's
                          too), so "Accepted the invitation after N days" reads
                          off sent_at. Null for an invitation sent by hand or
                          unknown, and null on every other type.
                    required:
                      - tasks
                      - facts
                      - plays
                      - journey
                      - records
                      - passes
                      - acts_as
                      - invite
                    description: >-
                      What was done about the row (2026-10-14, the Signals
                      feed): present on every row when requested, with empty
                      lists, a null journey, an empty records object, a null
                      acts_as and a null invite where nothing acted. The
                      act_state leaf reads the same rows.
                  person_journey:
                    type: object
                    nullable: true
                    properties:
                      workflow_sid:
                        type: string
                      workflow_name:
                        type: string
                        nullable: true
                        description: >-
                          The workflow's name, read with the deleted ones; null
                          only when the row is gone.
                      workflow_record_sid:
                        type: string
                      status:
                        type: string
                        enum:
                          - waiting_limit
                          - blocked
                          - active
                          - waiting
                          - paused_on_reply
                          - paused_manual
                          - paused_blocked
                          - failed
                          - completed
                          - exited
                        description: >-
                          The record's status as stored
                          (WorkflowRecordStatusEnum).
                      current_step_id:
                        type: integer
                      step_ordinal:
                        type: integer
                        nullable: true
                        minimum: 0
                        exclusiveMinimum: true
                        description: >-
                          1-based place of the step in the pinned version, depth
                          first ("step 3 of 5"); null when the version does not
                          have it.
                      step_count:
                        type: integer
                        nullable: true
                        minimum: 0
                        exclusiveMinimum: true
                        description: >-
                          Steps in the pinned version, nested ones and end steps
                          counted; null with step_ordinal.
                      step_type:
                        type: string
                        nullable: true
                        description: >-
                          The step's type in the version (WorkflowStepTypeEnum:
                          linkedin_send_message, email_send, condition, ...);
                          null with step_ordinal.
                      step_name:
                        type: string
                        nullable: true
                        description: >-
                          The step's own name in the pinned version (the
                          builder's label, 255 at most); null when the builder
                          gave none.
                      entered_at:
                        type: string
                        nullable: true
                        description: >-
                          ISO 8601 UTC: when the journey began; null while the
                          row is held at the door.
                      finished_at:
                        type: string
                        nullable: true
                        description: >-
                          ISO 8601 UTC: when the journey ended; null until a
                          terminal status.
                    required:
                      - workflow_sid
                      - workflow_name
                      - workflow_record_sid
                      - status
                      - current_step_id
                      - step_ordinal
                      - step_count
                      - step_type
                      - step_name
                      - entered_at
                      - finished_at
                    description: >-
                      The person's current journey (2026-10-16, the feed's
                      workflow chip): the newest workflow record of the row's
                      person whatever became of it, its status, its current
                      step's place and name in the pinned version, the
                      workflow's name (deleted records and workflows included).
                      On every row when requested; null on a company's row and
                      on a person with no record.
            required:
              - item
              - included
        pagination:
          type: object
          properties:
            next_cursor:
              type: string
              nullable: true
            has_more:
              type: boolean
            total_count:
              type: integer
              nullable: true
          required:
            - next_cursor
            - has_more
            - total_count
        applied_filters:
          type: object
          additionalProperties: {}
        includes:
          type: array
          items:
            type: string
        meta:
          type: object
          properties:
            trace_id:
              type: string
              description: UUID v7; same 128-bit value as the X-Trace-Id header.
            span_id:
              type: string
              pattern: ^[0-9a-f]{16}$
              description: 16 hex chars, root span of this request.
            timestamp:
              type: string
              description: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
            duration_ms:
              type: integer
              minimum: 0
              description: Server-side wall clock.
            team_sid:
              type: string
              nullable: true
              description: >-
                The team this call ran in (the token team, or the team_sid
                override). Null when unauthenticated; absent from pre-2026-08-20
                backends.
            actor_type:
              type: string
              nullable: true
              description: >-
                user | agent | api_key | system. Null when unauthenticated;
                absent from pre-2026-08-20 backends.
          required:
            - trace_id
            - span_id
            - timestamp
            - duration_ms
        counts:
          type: object
          properties:
            total_count:
              type: integer
              minimum: 0
              description: Rows matching the filter (full filter scope, not the page).
            groups:
              type: object
              properties:
                category:
                  anyOf:
                    - type: object
                      additionalProperties:
                        type: integer
                        minimum: 0
                    - type: array
                      items: {}
                  description: >-
                    Flat {value: count} per ActivityCategoryEnum value present
                    in scope.
                type:
                  anyOf:
                    - type: object
                      additionalProperties:
                        type: integer
                        minimum: 0
                    - type: array
                      items: {}
                  description: >-
                    Flat {value: count} per ActivityTypeEnum value present in
                    scope - the engagement-widget axis.
                object_type:
                  anyOf:
                    - type: object
                      additionalProperties:
                        type: integer
                        minimum: 0
                    - type: array
                      items: {}
                  description: 'Flat {person: n, company: m} row counts.'
              required:
                - category
                - type
                - object_type
              description: >-
                One axis per ActivityGroupableFieldsEnum value (§4.17); PHP
                empty map serialises as [].
          required:
            - total_count
            - groups
      required:
        - success
        - operation
        - items
        - pagination
        - applied_filters
        - includes
        - meta
    McpError:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - validation_failed
                - nothing_to_update
                - not_found
                - relation_not_found
                - invalid_transition
                - limit_exceeded
                - payment_required
                - duplicate_rejected
                - conflict
                - delete_blocked
                - unauthorized
                - forbidden
                - rate_limited
                - internal_error
                - service_unavailable
                - not_implemented
            message:
              type: string
            recoverable:
              type: boolean
            suggestion:
              type: string
            field_errors:
              type: object
              additionalProperties:
                type: array
                items:
                  type: object
                  properties:
                    rule:
                      type: string
                    message:
                      type: string
                  required:
                    - rule
                    - message
            blockers:
              type: array
              items:
                type: object
                properties:
                  type:
                    type: string
                    description: >-
                      Machine-readable blocker type (active_flow, pending_tasks,
                      …).
                  severity:
                    type: string
                    enum:
                      - hard
                      - soft
                    description: >-
                      hard = external action required; soft = acknowledge is
                      enough.
                  description:
                    type: string
                  entity_sid:
                    type: string
                    nullable: true
                  count:
                    type: integer
                  resolution:
                    type: string
                    description: 'Hard: tool name to call. Soft: code for acknowledge[].'
                  resolution_hint:
                    type: string
                required:
                  - type
                  - severity
                  - description
                  - entity_sid
                  - resolution
                  - resolution_hint
            context:
              type: object
              additionalProperties: {}
          required:
            - code
            - message
            - recoverable
        meta:
          type: object
          properties:
            trace_id:
              type: string
              description: UUID v7; same 128-bit value as the X-Trace-Id header.
            span_id:
              type: string
              pattern: ^[0-9a-f]{16}$
              description: 16 hex chars, root span of this request.
            timestamp:
              type: string
              description: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
            duration_ms:
              type: integer
              minimum: 0
              description: Server-side wall clock.
            team_sid:
              type: string
              nullable: true
              description: >-
                The team this call ran in (the token team, or the team_sid
                override). Null when unauthenticated; absent from pre-2026-08-20
                backends.
            actor_type:
              type: string
              nullable: true
              description: >-
                user | agent | api_key | system. Null when unauthenticated;
                absent from pre-2026-08-20 backends.
          required:
            - trace_id
            - span_id
            - timestamp
            - duration_ms
      required:
        - success
        - error
  responses:
    McpClientError:
      description: >-
        MCP error envelope. `error.code` is one of validation_failed,
        nothing_to_update, not_found, relation_not_found, invalid_transition,
        limit_exceeded, payment_required, duplicate_rejected, conflict,
        delete_blocked, unauthorized, forbidden, rate_limited, not_implemented.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/McpError'
    McpServerError:
      description: >-
        MCP error envelope with `error.code` internal_error or
        service_unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/McpError'
  securitySchemes:
    BearerJwt:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Access token issued by gs.service.id. Its `access_identity` claim
        carries `team_sid`, `actor_sid` and `actor_type`, and that team scope is
        authoritative.
    TeamSid:
      type: apiKey
      in: header
      name: Team-SID
      description: >-
        Team scope for tokens that do not carry one. Ignored when the token
        already names a team.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.