workflow_sources

Create workflow source

Attach an audience feed to a campaign. Payload is XOR by type: view ⇒ view_sid (live view membership); filter ⇒ filter (inline AST over the team's people); manual ⇒ optional people_sids enrolled synchronously (requires a published version). auto_add:true (view/filter only) enqueues an immediate first sweep - no 10-minute wait. Duplicate (workflow_sid, view_sid) → already_exists:true with the existing row. NOT for importing external data into the CRM (data-sources) - this feeds EXISTING people.

Contract:

  • MCP tool create_workflow_source, registry package mcp.playtables/workflow_sources, mount playtables.workflows.
  • Operation create, response envelope create.
  • Flags: none.
post/api/workflow-sources

Request

  • Base URL
    https://beta.getsales.io/playtables/v1
  • Auth
    HTTP bearer and API key in header Team-SID

Request body

workflow_sidstring required

Parent campaign (wf_wf_…) - must exist, be non-deleted and not archived (409 conflict).

type'view' | 'filter' | 'manual' | 'event' required

view | filter | manual - picks the XOR payload (view ⇒ view_sid; filter ⇒ filter; manual ⇒ optional people_sids). Immutable after create.

event'linkedin_connection_request_accepted' | 'linkedin_message_replied' | 'linkedin_inmail_replied' | 'email_replied' | 'email_opened' | 'email_link_clicked' | 'linkedin_invitation_received' | 'linkedin_followed' | 'website_visited' | 'website_key_page_visited' | 'website_form_submitted' nullable

REQUIRED for type=event, forbidden otherwise (422): the activity type whose occurrence enrolls the person (activities.md); explicit null is the same as omitted.

namestring nullable

Optional label ("Conference batch"); omit or null = unlabeled.

view_sidstring nullable

REQUIRED for type=view, forbidden otherwise (422); explicit null ≈ omitted under the XOR server-rule. Playtable view (pt_vw_…) whose live membership is the audience; validated existing + non-deleted.

people_sidsstring[]

type=manual only (forbidden otherwise): 1..500 cr_pp_ sids enrolled synchronously through the same entry decisions as add-people; requires a published workflow version (422 invalid_transition).

auto_addboolean

Default false. view/filter only - true enqueues an immediate first sweep; true on manual → 422.

active_limitinteger nullable

Enrollment throttle (default null = unlimited): max simultaneous in-flight records from this source. Over-cap candidates WAIT (blocked_limit_count), not rejected.

coworkers_limitinteger nullable

Enrollment throttle (default null = unlimited): max simultaneous in-flight records from this source per company.

Response

create success envelope.

successtrue required
operation'create' required
already_existsboolean required

Changes

No recorded changes to this operation across all 1 revision of this API.