> ## 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.

# Turn on, change or pause a sync

> Sends the people in a saved view automatically from now on: a sync. It sends to Slack, Google Sheets, Clay, a webhook, email or an outreach tool. It turns on, changes, pauses, resumes or stops the sync from one People view to one destination. A destination is a Slack channel, an email list, a webhook or a connected app. A sync sends people automatically. mode once sends each person when they enter the view. every_time sends each new like, comment, share or profile view by someone in the view instead. every_time does not send the people who enter. Starting a sync sends nothing for the people already in the view. add_email and add_phone look up contact details, for Leads only. add_email costs 5 credits per verified email found, add_phone 25 credits per number found. On a workspace that pays in credits, switching either on, or lookup_current_members, asks first. The first call then returns a summary with the cost and a confirm_id. Ziplined saves the sync when you call again with the same arguments plus confirm_id. all_leads: true instead of a view syncs every lead from every source (Slack, email or webhook). For a HeyReach, Instantly or Waalaxy campaign or list, pass the account id as destination. The account id is in accounts in list_destinations. Pass the campaign or list id from list_destination_targets as target. For a HeyReach lead list, add target_kind: list. new_list_name instead of target makes a new HeyReach list. A person in a HeyReach list gets no message until the user adds the list to a campaign in HeyReach. An outreach sync sends each person once and looks up no contact details. An outreach sync to Instantly needs the contacts scope. paused: true holds a sync and keeps its choices. paused: false resumes it, and sends only the people who enter from then on. enabled: false stops it. Tell the user what the answer says will happen.

Use when: The user wants people sent somewhere automatically from now on. Example: "every time someone new lands in my list, push them to Slack". Also to pause, resume or stop a sync. view and destination take names, as the user says them, so the view needs no lookup first. An unknown name comes back as not_found with similar names. For an outreach campaign, find its id with list_destination_targets.

Do not use for: A one-off send right now (use send_people instead). A destination that the user did not connect yet (use connect_destination or save_destination instead).

Example: {"view":"Warm leads","destination":"#leads","enabled":true,"mode":"once"}



## OpenAPI

````yaml /openapi.json put /v1/views/{id}/syncs/{destination_id}
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 `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: Views
    description: The saved views of the app, and who is in a hand-picked one.
  - name: Audiences
    description: The scored target groups, and their membership.
  - name: ICP
    description: 'Who you sell to: the rules every person is scored against.'
  - name: Sources
    description: What your radar collects from.
  - name: Account
    description: Who is asking, what is set up, and what is next.
  - name: Credits
    description: What is left to spend on sources, and when it resets.
  - name: Integrations
    description: 'Where syncs send people: webhook, email, Slack and app destinations.'
paths:
  /v1/views/{id}/syncs/{destination_id}:
    put:
      tags:
        - Views
      summary: Turn on, change or pause a sync
      description: >-
        Sends the people in a saved view automatically from now on: a sync. It
        sends to Slack, Google Sheets, Clay, a webhook, email or an outreach
        tool. It turns on, changes, pauses, resumes or stops the sync from one
        People view to one destination. A destination is a Slack channel, an
        email list, a webhook or a connected app. A sync sends people
        automatically. mode once sends each person when they enter the view.
        every_time sends each new like, comment, share or profile view by
        someone in the view instead. every_time does not send the people who
        enter. Starting a sync sends nothing for the people already in the view.
        add_email and add_phone look up contact details, for Leads only.
        add_email costs 5 credits per verified email found, add_phone 25 credits
        per number found. On a workspace that pays in credits, switching either
        on, or lookup_current_members, asks first. The first call then returns a
        summary with the cost and a confirm_id. Ziplined saves the sync when you
        call again with the same arguments plus confirm_id. all_leads: true
        instead of a view syncs every lead from every source (Slack, email or
        webhook). For a HeyReach, Instantly or Waalaxy campaign or list, pass
        the account id as destination. The account id is in accounts in
        list_destinations. Pass the campaign or list id from
        list_destination_targets as target. For a HeyReach lead list, add
        target_kind: list. new_list_name instead of target makes a new HeyReach
        list. A person in a HeyReach list gets no message until the user adds
        the list to a campaign in HeyReach. An outreach sync sends each person
        once and looks up no contact details. An outreach sync to Instantly
        needs the contacts scope. paused: true holds a sync and keeps its
        choices. paused: false resumes it, and sends only the people who enter
        from then on. enabled: false stops it. Tell the user what the answer
        says will happen.


        Use when: The user wants people sent somewhere automatically from now
        on. Example: "every time someone new lands in my list, push them to
        Slack". Also to pause, resume or stop a sync. view and destination take
        names, as the user says them, so the view needs no lookup first. An
        unknown name comes back as not_found with similar names. For an outreach
        campaign, find its id with list_destination_targets.


        Do not use for: A one-off send right now (use send_people instead). A
        destination that the user did not connect yet (use connect_destination
        or save_destination instead).


        Example: {"view":"Warm
        leads","destination":"#leads","enabled":true,"mode":"once"}
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 200
            description: The People view that sends, by name or id from list_views.
          required: false
          description: The People view that sends, by name or id from list_views.
          name: id
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 200
            description: >-
              Where it sends, by name or id from list_destinations. With target:
              the id of the outreach account, from accounts in
              list_destinations.
          required: true
          description: >-
            Where it sends, by name or id from list_destinations. With target:
            the id of the outreach account, from accounts in list_destinations.
          name: destination_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: false
          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:
        content:
          application/json:
            schema:
              type: object
              properties:
                all_leads:
                  type: boolean
                  description: >-
                    true: the sync of all leads, every lead from every source,
                    without a view (the Leads table). Instead of view.
                target:
                  type: string
                  minLength: 1
                  maxLength: 256
                  description: >-
                    A campaign or list id from list_destination_targets. With
                    target, destination is its account. The sync sends each
                    person who enters the view to that campaign or list once.
                target_kind:
                  type: string
                  enum:
                    - campaign
                    - list
                  description: >-
                    HeyReach only: list when target is a lead list, campaign
                    when it is a campaign. Left out: campaign (HeyReach,
                    Instantly) or list (Waalaxy). A person in a HeyReach list
                    gets no message until the user adds the list to a campaign
                    in HeyReach.
                new_list_name:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: >-
                    HeyReach only, instead of target: makes a new HeyReach lead
                    list with this name and syncs the view to it. Destination is
                    the HeyReach account. Usually the name of the view.
                enabled:
                  type: boolean
                  description: >-
                    true turns the sync on, or keeps it on. false stops it and
                    drops its choices. Turning it on again starts over. There is
                    no delete. To hold a sync and keep its choices, use paused.
                paused:
                  type: boolean
                  description: >-
                    true pauses a sync that exists: it sends nothing until you
                    resume it. Its mode, frequency and contact details stay.
                    false resumes it from a new baseline. Goes with enabled:
                    true and nothing else. You cannot pause the sync of all
                    leads; stop it with enabled: false.
                mode:
                  type: string
                  enum:
                    - once
                    - every_time
                  description: >-
                    once: each person is sent once, when they enter the view.
                    every_time: each new like, comment, share or profile view by
                    a person in the view is sent. Left out: unchanged, or once
                    for a new sync.
                frequency:
                  type: string
                  enum:
                    - hourly
                    - daily
                    - weekly
                  description: >-
                    How the sync bundles its sends: hourly, daily, or weekly on
                    Monday. Left out: unchanged, or the default of the
                    destination for a new sync.
                send_hour_utc:
                  type: integer
                  minimum: 0
                  maximum: 23
                  description: >-
                    With frequency daily or weekly: the whole hour in UTC.
                    Default 7.
                add_email:
                  type: boolean
                  description: >-
                    Look up the work email of each Lead sent. 5 credits per
                    verified email found.
                add_phone:
                  type: boolean
                  description: >-
                    Look up the phone number of each Lead sent. 25 credits per
                    number found.
                lookup_current_members:
                  type: boolean
                  description: >-
                    Also look up email or phone (the ticked ones) for the Leads
                    already in the view, once. It sends nothing for them. A view
                    without a Lead fails with not_a_lead.
                send_everyone:
                  type: boolean
                  description: >-
                    true: also send everyone in the view now, once (at most
                    10000). Only for a New people sync to Google Sheets, Clay, a
                    webhook or an outreach app. They start going out within a
                    minute and count as sent, so the sync sends only new people
                    after that. The destination gets a new row for people it
                    already has. You cannot undo a send, so it asks first,
                    except for an outreach list, which sends no messages.
                send_contacts:
                  type: boolean
                  description: >-
                    With send_everyone, on a webhook sync with add_email or
                    add_phone: false sends everyone without contact details, for
                    no credits. Left out: Ziplined looks up their contact
                    details, and you pay only for what it finds.
                resend_not_sent:
                  type: boolean
                  description: >-
                    true: queue again the people this sync did not reach
                    (sync.not_sent). Their deliveries ran out of attempts since
                    its last send. The sync sends each of them once, with what
                    it would have sent then.
                confirm_id:
                  type: string
                  description: >-
                    The confirm_id of a needs_confirmation answer: commits what
                    that answer summarised.
              required:
                - enabled
      responses:
        '200':
          description: >-
            The result, or without confirm_id first a needs_confirmation answer:
            nothing happened yet.
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      sync:
                        type: object
                        properties:
                          id:
                            type: string
                            nullable: true
                            description: >-
                              The sync id; null when this view never synced
                              here.
                          view_id:
                            type: string
                            nullable: true
                            description: The view, or null for the sync of all leads.
                          destination:
                            type: object
                            properties:
                              id:
                                type: string
                              provider:
                                type: string
                              name:
                                type: string
                                nullable: true
                              status:
                                type: string
                                enum:
                                  - connected
                                  - paused
                                  - failed
                                  - disconnected
                            required:
                              - id
                              - provider
                              - name
                              - status
                          status:
                            type: string
                            enum:
                              - active
                              - paused
                            description: >-
                              From the stored sync settings. active: it sends.
                              paused: it sends nothing, because it is off or has
                              no mode on.
                          mode:
                            type: string
                            nullable: true
                            enum:
                              - once
                              - every_time
                              - null
                            description: Null while paused.
                          frequency:
                            type: string
                            enum:
                              - hourly
                              - daily
                              - weekly
                            description: How the sync bundles its sends.
                          send_hour_utc:
                            type: integer
                            nullable: true
                            description: >-
                              With frequency daily or weekly: the whole hour in
                              UTC.
                          add_email:
                            type: boolean
                          add_phone:
                            type: boolean
                          not_sent:
                            type: integer
                            description: >-
                              People whose deliveries ran out of attempts since
                              the last send. resend_not_sent: true queues them
                              again.
                        required:
                          - id
                          - view_id
                          - destination
                          - status
                          - mode
                          - frequency
                          - send_hour_utc
                          - add_email
                          - add_phone
                          - not_sent
                      effects:
                        type: array
                        items:
                          type: string
                        description: What this does, in plain words. Tell the user.
                      lookup:
                        type: object
                        nullable: true
                        properties:
                          run_id:
                            type: string
                          status:
                            type: string
                            description: The status of the lookup run.
                          started:
                            type: boolean
                            description: >-
                              False when a lookup of this view was already
                              running; this is that one.
                        required:
                          - run_id
                          - status
                          - started
                      app_url:
                        type: string
                    required:
                      - sync
                      - effects
                      - lookup
                      - app_url
                  - $ref: '#/components/schemas/Confirmation'
        '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'
      security:
        - bearerAuth: []
components:
  schemas:
    Confirmation:
      type: object
      properties:
        needs_confirmation:
          type: boolean
          enum:
            - true
        message:
          type: string
          description: >-
            Nothing changed yet. Ask the user, then send the same request with
            confirm_id.
        confirm_id:
          type: string
          description: Send it back with the same request to commit. Valid for 10 minutes.
        summary:
          nullable: true
          description: What the commit will do, to show the user before confirming.
        cost:
          type: object
          properties:
            estimate:
              type: number
            ceiling:
              type: number
          required:
            - estimate
            - ceiling
          description: >-
            Credits: estimate is what the commit is expected to spend. ceiling
            is 0: no ceiling is stored, and later spend stops when the balance
            reaches 0.
        expires_at:
          type: string
          description: ISO instant. After it, confirm_id is refused as confirm_stale.
      required:
        - needs_confirmation
        - message
        - confirm_id
        - cost
        - expires_at
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

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