Configure signal agents, person and company-employee watches, and the exclusions every agent honours.
Full name: campaignstack_get_company_employee_watches
leads:read
Read-only
Get company employee watches with optional ids, company filter, state filter, and pagination. Returns the stable V2 collection shape and never leaks watches outside the resolved workspace.
| Name | Type | Required | Default | Description |
|---|
ids | string[] | No | — | Optional company employee watch ids to fetch. |
filters | object | No | — | |
filters.workspaceId | string | No | — | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. |
filters.state | all | active | paused | No | "all" | |
filters.companyId | string | No | — | |
include | object | No | — | |
limit | integer | No | 50 | Maximum items to return, capped at 100. (min: 1, max: 100) |
cursor | string | No | — | Opaque pagination cursor. (min length: 1, max length: 1000) |
Full name: campaignstack_get_exclusions
signals:read
Read-only
Get exclusion policy rows with a stable {items,pagination} shape. Target workspace returns level-0 policy; target signal_agent or workflow returns the effective cascade (workspace policy plus that consumer’s additive exclusions). Use include.manualProfiles with a cap to inspect bounded manual profile samples.
| Name | Type | Required | Default | Description |
|---|
ids | string[] | No | — | Optional exclusion ids to fetch after the target cascade is resolved. |
filters | object | No | — | |
filters.target | workspace | signal_agent | workflow | No | "workspace" | workspace returns level-0 exclusions. signal_agent/workflow returns the effective cascade for that consumer. |
filters.workspaceId | string | No | — | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. |
filters.signalAgentId | string | No | — | Required when target is signal_agent. |
filters.workflowId | string | No | — | Required when target is workflow. |
filters.enabled | boolean | No | — | Filter by enabled state after the cascade is resolved. |
filters.type | string | No | — | Filter by exclusion entry type such as manual, csv, filter, or lead_list. |
include | object | No | — | |
include.manualProfiles | object | No | — | For manual exclusion entries, include a bounded sample of LinkedIn profile rows. |
limit | integer | No | 50 | Maximum items to return, capped at 100. (min: 1, max: 100) |
cursor | string | No | — | Opaque pagination cursor. (min length: 1, max length: 1000) |
Full name: campaignstack_get_signal_agents
signals:read
Read-only
Get signal agents with optional ids, filters, pagination, and bounded stats/leads includes. Account-maintenance watchers stay hidden unless includeAccountMaintenance is true.
| Name | Type | Required | Default | Description |
|---|
ids | string[] | No | — | Optional signal agent ids to fetch. |
filters | object | No | — | |
filters.workspaceId | string | No | — | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. |
filters.status | string | No | — | |
filters.type | string | No | — | |
filters.includeArchived | boolean | No | — | |
filters.includeAccountMaintenance | boolean | No | — | |
include | object | No | — | |
include.stats | object | No | — | Include bounded dashboard statistics for each returned signal agent. |
include.leads | object | No | — | Include a bounded newest-first sample of leads discovered by each returned signal agent. |
limit | integer | No | 50 | Maximum items to return, capped at 100. (min: 1, max: 100) |
cursor | string | No | — | Opaque pagination cursor. (min length: 1, max length: 1000) |
Full name: campaignstack_get_signal_watches
leads:read
Read-only
Get person signal watches with optional ids, filters, and pagination. Returns only watches inside the resolved workspace; missing requested ids are reported as missingIds.
| Name | Type | Required | Default | Description |
|---|
ids | string[] | No | — | Optional lead signal watch ids to fetch. |
filters | object | No | — | |
filters.workspaceId | string | No | — | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. |
filters.state | all | active | paused | No | "all" | |
filters.leadSource | global | private | No | — | |
filters.leadId | string | No | — | |
include | object | No | — | |
limit | integer | No | 50 | Maximum items to return, capped at 100. (min: 1, max: 100) |
cursor | string | No | — | Opaque pagination cursor. (min length: 1, max length: 1000) |
Full name: campaignstack_edit_company_employee_watch
leads:write
Create company employee watches or change their active/paused state. Call this when the user asks CampaignStack to watch a company for new hires or pause/resume an existing company watch. It does not delete watches; use campaignstack_delete_company_employee_watch for removal. Batch edits are bounded. Return one result per requested item, and report partial failures instead of describing the whole batch as successful.
| Name | Type | Required | Default | Description |
|---|
workspaceId | string | No | — | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. |
operations | operation[] | Yes | — | One or more operations, see below. |
| Name | Type | Required | Default | Description |
|---|
companyId | string | Yes | — | (min length: 1) |
| Name | Type | Required | Default | Description |
|---|
watchId | string | Yes | — | (min length: 1) |
status | active | paused | Yes | — | |
Full name: campaignstack_edit_exclusions
signals:write
Edit exclusion policy for a workspace, signal agent, or workflow. Call this when the user asks to add/remove blocked profiles, change filter rules, or enable/disable exclusion rules. Child targets are additive only: they can add restrictions but cannot release workspace restrictions. Batch edits are bounded. Return one result per requested item, and report partial failures instead of describing the whole batch as successful.
| Name | Type | Required | Default | Description |
|---|
workspaceId | string | No | — | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. |
target | object | Yes | — | workspace edits level-0 policy. signal_agent and workflow edits are additive level-1 policy and cannot release workspace exclusions. |
target.type | workspace | signal_agent | workflow | Yes | — | |
target.id | string | No | — | Signal agent id or workflow id for child targets. Omit for workspace target. |
operations | operation[] | Yes | — | One or more operations, see below. |
| Name | Type | Required | Default | Description |
|---|
exclusionId | string | Yes | — | (min length: 1) |
profileUrls | string[] | Yes | — | |
| Name | Type | Required | Default | Description |
|---|
exclusionId | string | Yes | — | (min length: 1) |
importedLeadId | string | Yes | — | (min length: 1) |
| Name | Type | Required | Default | Description |
|---|
exclusionId | string | Yes | — | (min length: 1) |
rules | object[] | Yes | — | |
logic | and | or | No | "or" | |
| Name | Type | Required | Default | Description |
|---|
exclusionId | string | Yes | — | (min length: 1) |
enabled | boolean | Yes | — | |
| Name | Type | Required | Default | Description |
|---|
exclusions | object[] | Yes | — | |
Full name: campaignstack_edit_signal_agent
signals:write
Destructive
Needs confirmation
Create signal agents, update their account assignment, script or approval mode (approvalMode: whether what the agent drafts waits for a person), pause/resume them, replace their additive exclusions, or restore a previous agentScript version (restore_guidance, using a versionId from campaignstack_get_signal_agents include.guidanceHistory). Setting status to ‘archived’ runs the same permanent removal as campaignstack_delete_signal_agent and requires confirmed:true on that operation. Batch edits are bounded. Return one result per requested item, and report partial failures instead of describing the whole batch as successful.
| Name | Type | Required | Default | Description |
|---|
workspaceId | string | No | — | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. |
operations | operation[] | Yes | — | One or more operations, see below. |
| Name | Type | Required | Default | Description |
|---|
name | string | Yes | — | (min length: 1) |
type | profile_feed | company_feed | group_watch | post_engagement | Yes | — | |
target | object | object | object | Yes | — | |
targetName | string | Yes | — | (min length: 1) |
approvalMode | manual_review | auto_when_confident | automatic | No | — | Whether what this workflow drafts waits for a person. manual_review: every message waits in the review queue. auto_when_confident: messages still wait, and the ones the confidence check rates as safe to send unchanged go out on their own once the workspace’s calibration allows it (a daily cap applies, and booking confirmations, files, conversation turns and flagged drafts always wait). automatic: no review step at all. On a signal agent this also removes its review steps; on any other workflow, review steps already in the graph keep waiting, so remove them with campaignstack_edit_workflow_graph. Omit to keep the current mode; on create, omit to start from the owner’s onboarding answer. Only a workspace owner or admin can set it. Set automatic only when the user asked for messages to go out unreviewed. |
accountIds | string[] | Yes | — | |
actAccountIds | string[] | Yes | — | |
publicReplyConfig | object | No | — | |
silenceHours | number | No | — | |
| Name | Type | Required | Default | Description |
|---|
agentId | string | Yes | — | (min length: 1) |
name | string | No | — | (min length: 1) |
approvalMode | unknown | No | — | Whether what this workflow drafts waits for a person. manual_review: every message waits in the review queue. auto_when_confident: messages still wait, and the ones the confidence check rates as safe to send unchanged go out on their own once the workspace’s calibration allows it (a daily cap applies, and booking confirmations, files, conversation turns and flagged drafts always wait). automatic: no review step at all. On a signal agent this also removes its review steps; on any other workflow, review steps already in the graph keep waiting, so remove them with campaignstack_edit_workflow_graph. Omit to keep the current mode; on create, omit to start from the owner’s onboarding answer. Only a workspace owner or admin can set it. Set automatic only when the user asked for messages to go out unreviewed. |
accountIds | string[] | No | — | |
actAccountIds | string[] | No | — | |
publicReplyConfig | object | No | — | |
silenceHours | number | No | — | |
agentScript | string | No | — | |
| Name | Type | Required | Default | Description |
|---|
agentId | string | Yes | — | (min length: 1) |
status | active | paused | archived | Yes | — | |
confirmed | boolean | No | — | Required (must be true) when status is ‘archived’: archiving here runs the same permanent removal as campaignstack_delete_signal_agent. This permanently deletes a root record. Before calling it, name exactly what will be deleted, explain that it cannot be undone, and wait for an explicit yes. |
| Name | Type | Required | Default | Description |
|---|
agentId | string | Yes | — | (min length: 1) |
exclusions | object[] | Yes | — | |
| Name | Type | Required | Default | Description |
|---|
versionId | string | Yes | — | versionId of a previous agentScript version to restore. (min length: 1) |
Full name: campaignstack_edit_signal_watch
leads:write
Create person signal watches or change their active/paused state. Call this when the user asks CampaignStack to watch a lead for profile changes or pause/resume an existing person watch. It does not delete watches; use campaignstack_delete_signal_watch for removal. Batch edits are bounded. Return one result per requested item, and report partial failures instead of describing the whole batch as successful.
| Name | Type | Required | Default | Description |
|---|
workspaceId | string | No | — | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. |
operations | operation[] | Yes | — | One or more operations, see below. |
| Name | Type | Required | Default | Description |
|---|
leadSource | global | private | Yes | — | |
leadId | string | Yes | — | (min length: 1) |
| Name | Type | Required | Default | Description |
|---|
watchId | string | Yes | — | (min length: 1) |
status | active | paused | Yes | — | |
Full name: campaignstack_delete_company_employee_watch
leads:write
Destructive
Needs confirmation
Delete company employee watches by archiving them so they no longer refresh. Call this only after the user confirms the exact watches to remove. This permanently deletes a root record. Before calling it, name exactly what will be deleted, explain that it cannot be undone, and wait for an explicit yes. Batch edits are bounded. Return one result per requested item, and report partial failures instead of describing the whole batch as successful.
| Name | Type | Required | Default | Description |
|---|
workspaceId | string | No | — | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. |
watchIds | string[] | Yes | — | |
confirmed | boolean | Yes | — | This permanently deletes a root record. Before calling it, name exactly what will be deleted, explain that it cannot be undone, and wait for an explicit yes. |
Full name: campaignstack_delete_signal_agent
signals:write
Destructive
Needs confirmation
Delete signal agents by running the supported archive/remove contract and clearing linked watch pointers. Call this only after the user confirms the exact agents to remove. This permanently deletes a root record. Before calling it, name exactly what will be deleted, explain that it cannot be undone, and wait for an explicit yes. Batch edits are bounded. Return one result per requested item, and report partial failures instead of describing the whole batch as successful.
| Name | Type | Required | Default | Description |
|---|
workspaceId | string | No | — | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. |
agentIds | string[] | Yes | — | |
confirmed | boolean | Yes | — | This permanently deletes a root record. Before calling it, name exactly what will be deleted, explain that it cannot be undone, and wait for an explicit yes. |
Full name: campaignstack_delete_signal_watch
leads:write
Destructive
Needs confirmation
Delete person signal watches by archiving them so they no longer refresh. Call this only after the user confirms the exact watches to remove. This permanently deletes a root record. Before calling it, name exactly what will be deleted, explain that it cannot be undone, and wait for an explicit yes. Batch edits are bounded. Return one result per requested item, and report partial failures instead of describing the whole batch as successful.
| Name | Type | Required | Default | Description |
|---|
workspaceId | string | No | — | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. |
watchIds | string[] | Yes | — | |
confirmed | boolean | Yes | — | This permanently deletes a root record. Before calling it, name exactly what will be deleted, explain that it cannot be undone, and wait for an explicit yes. |