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

# Log that we reached out to someone

> Records one outreach act. `tags` are ADDED to the tags this person already has. The `outreach_count` and `last_outreach_at` on the person that comes back are rebuilt nightly, so they lag this act by one night; the act itself is readable straight away. Requires an `Idempotency-Key`.



## OpenAPI

````yaml /openapi.json post /v1/people/{person_id}/touches
openapi: 3.1.0
info:
  title: Ziplined API
  version: 1.0.0
  description: >-
    LinkedIn engagement data about people, companies and posts. The workspace
    comes from the credential; lists page with `limit` and `next_cursor`.
servers:
  - url: https://api.ziplined.io
    description: Production
security: []
tags:
  - name: People
    description: The people in your workspace, and what you sent them.
  - name: Companies
    description: The companies those people work at.
  - name: Posts
    description: Your own posts and their numbers.
  - name: Engagements
    description: One act by one person on one post.
  - name: Insights
    description: Period against period, and the series behind it.
  - name: Audiences
    description: Named lists of people, and their membership.
  - name: Sources
    description: What your radar collects from.
  - name: Integrations
    description: Webhook and Slack destinations, and routing rules.
paths:
  /v1/people/{person_id}/touches:
    post:
      tags:
        - People
      summary: Log that we reached out to someone
      description: >-
        Records one outreach act. `tags` are ADDED to the tags this person
        already has. The `outreach_count` and `last_outreach_at` on the person
        that comes back are rebuilt nightly, so they lag this act by one night;
        the act itself is readable straight away. Requires an `Idempotency-Key`.
      parameters:
        - schema:
            type: string
            example: ACoAAABcDeFgHi
          required: true
          name: person_id
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 255
            description: >-
              Any client-chosen key, a uuid for example. Sending the same
              request twice with the same key has one effect and returns the
              same response twice; the same key with a different body returns
              409.
            example: 3f1b2c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d
          required: true
          description: >-
            Any client-chosen key, a uuid for example. Sending the same request
            twice with the same key has one effect and returns the same response
            twice; the same key with a different body returns 409.
          name: idempotency-key
          in: header
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TouchLog'
      responses:
        '201':
          description: The logged act, and the person it was logged on.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/TouchCreated'
                required:
                  - data
        '400':
          description: A filter value is invalid, or this resource has no such filter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Not included in this plan, or a usage cap was exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Wrong workspace, or the credential lacks the required scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such record, or it does not belong to this workspace.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: >-
            The same `Idempotency-Key` was used for a different request, or that
            request is still in flight.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    TouchLog:
      type: object
      properties:
        channel:
          type: string
          enum:
            - linkedin_message
            - email
            - call
            - other
        note:
          type: string
        occurred_at:
          type: string
          format: date-time
          description: ISO instant. Defaults to now.
        tags:
          type: array
          items:
            type: string
          description: Added to the tags this person already has, never replacing them.
      required:
        - channel
      additionalProperties: false
    TouchCreated:
      type: object
      properties:
        touch:
          $ref: '#/components/schemas/LoggedTouch'
        person:
          $ref: '#/components/schemas/Person'
      required:
        - touch
        - person
      additionalProperties: false
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
          required:
            - code
            - message
      required:
        - error
    LoggedTouch:
      type: object
      properties:
        id:
          type: string
        channel:
          type: string
          enum:
            - linkedin_message
            - email
            - call
            - other
        note:
          type: string
          nullable: true
        occurred_at:
          type: string
      required:
        - id
        - channel
        - note
        - occurred_at
      additionalProperties: false
    Person:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
          nullable: true
        headline:
          type: string
          nullable: true
        job_title:
          type: string
          nullable: true
        company:
          type: string
          nullable: true
        company_id:
          type: string
          nullable: true
        location:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
        seniority:
          type: string
          nullable: true
        industry:
          type: string
          nullable: true
        linkedin_url:
          type: string
          nullable: true
        follower_count:
          type: number
          nullable: true
        connection_count:
          type: number
          nullable: true
        stage:
          type: string
          nullable: true
          enum:
            - lead
            - customer
            - peer
            - watchlist
            - disqualified
            - null
        connection_degree:
          type: string
          nullable: true
          example: 2nd
        fit:
          type: object
          properties:
            score:
              type: number
            tier:
              type: string
              nullable: true
          required:
            - score
            - tier
        warmth:
          type: object
          properties:
            score:
              type: number
            tier:
              type: string
              nullable: true
          required:
            - score
            - tier
        first_engaged_at:
          type: string
          nullable: true
        last_engaged_at:
          type: string
          nullable: true
        last_engaged_type:
          type: string
          nullable: true
        engagements_total:
          type: number
        engagements_30d:
          type: number
        outreach_count:
          type: number
          description: How often we reached out, across all channels.
        last_outreach_at:
          type: string
          nullable: true
        notes:
          type: string
          nullable: true
        tags:
          type: array
          items:
            type: string
        company_industry:
          type: string
          nullable: true
        company_size:
          type: object
          properties:
            min:
              type: number
              nullable: true
            max:
              type: number
              nullable: true
          required:
            - min
            - max
        email:
          type: string
          nullable: true
        email_status:
          type: string
          nullable: true
          enum:
            - pending
            - found
            - not_found
            - null
          description: >-
            Whether the address was found, is still being looked up, or does not
            exist.
        phone:
          type: string
          nullable: true
        phone_status:
          type: string
          nullable: true
          enum:
            - pending
            - found
            - not_found
            - null
      required:
        - id
        - name
        - headline
        - job_title
        - company
        - company_id
        - location
        - country
        - seniority
        - industry
        - linkedin_url
        - follower_count
        - connection_count
        - stage
        - connection_degree
        - fit
        - warmth
        - first_engaged_at
        - last_engaged_at
        - last_engaged_type
        - engagements_total
        - engagements_30d
        - outreach_count
        - last_outreach_at
        - notes
        - tags
        - company_industry
        - company_size

````

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