Signal Agents
Create and manage signal agents (audiences) — the engagement-intelligence feature that watches posts/events and turns engagers into scored leads.
Tools (9)
Section titled “Tools (9)”list_signal_agents
Section titled “list_signal_agents”Full name: campaignstack_list_signal_agents
List the signal agents (audience intelligence watchers) of a workspace: profiles, company feeds, groups or posts, with status and counters. Call this when the user asks what is being watched. Connection and message watchers are account maintenance and hidden unless includeAccountMaintenance is true; campaignstack_get_account_maintenance is their home.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Workspace ID. REQUIRED for a user key (csu_), which spans every workspace you belong to; omitted for a workspace key (cs_), which is bound to one and ignores this argument. campaignstack_whoami reports which kind of key you are holding and, for a user key, the workspaces it can reach. (min length: 1) |
includeArchived | boolean | No | — | |
includeAccountMaintenance | boolean | No | — |
get_signal_agent
Section titled “get_signal_agent”Full name: campaignstack_get_signal_agent
Get a single signal agent: status, target, account assignments, response mode, and counters. Call this when you need its full config before changing it. Not the leads it found: campaignstack_list_signal_agent_leads does that.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
agentId | string | Yes | — | (min length: 1) |
get_signal_agent_stats
Section titled “get_signal_agent_stats”Full name: campaignstack_get_signal_agent_stats
Get dashboard metrics for a signal agent: total signals, 24h signals, leads created, posts watched, priority breakdown. Message and connection watchers return a watcherActivity block instead (no signal events). Call this when the user asks how a watcher is performing. Not the leads behind the counts: campaignstack_list_signal_agent_leads does that.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
agentId | string | Yes | — | (min length: 1) |
list_signal_agent_leads
Section titled “list_signal_agent_leads”Full name: campaignstack_list_signal_agent_leads
List leads a signal agent has found, newest first, with entry status. Call this when the user asks who a watcher has found. Read-only: use campaignstack_trigger_workflow to act on them.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
agentId | string | Yes | — | (min length: 1) |
limit | number | No | 50 | (min: 1, max: 200) |
create_signal_agent
Section titled “create_signal_agent”Full name: campaignstack_create_signal_agent
Create a new signal agent that monitors a LinkedIn profile, company feed, group, or post for engagements. Auto-generates a template workflow and lead list. Call this when the target is not a competitor and not account maintenance (connection requests, inbound messages, own posts, which use campaignstack_set_account_watcher instead); for a competitor or influencer, campaignstack_create_competitor_watch wires this up for you. target specifies what to watch: { platform: ‘linkedin’, kind: ‘profile’, urn: ’…’ } for profile/company feeds, { platform: ‘linkedin’, kind: ‘group’, url: ’…’, groupId: ’…’ } for groups, or { platform: ‘linkedin’, kind: ‘post’, url: ’…’, activityId: ’…’ } for specific posts. accountIds observe the feed; actAccountIds act on signals.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
workspaceId | string | No | — | Workspace ID. REQUIRED for a user key (csu_), which spans every workspace you belong to; omitted for a workspace key (cs_), which is bound to one and ignores this argument. campaignstack_whoami reports which kind of key you are holding and, for a user key, the workspaces it can reach. (min length: 1) |
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) |
responseMode | auto_send | review_first | Yes | — | |
accountIds | string[] | Yes | — | |
actAccountIds | string[] | Yes | — | |
publicReplyConfig | object | No | — | |
silenceHours | integer | No | — | (min: 1, max: 720) |
followUpDelaysHours | number[] | No | — |
update_signal_agent
Section titled “update_signal_agent”Full name: campaignstack_update_signal_agent
Update a signal agent’s configuration; only provided fields change: name, response mode, observing/acting account lists, the agent playbook, or public reply config. Call this when the user asks to change how an existing watcher behaves. Account lists are kind-restricted: connection-watch and message agents are locked to their account (AGENT_POOL_LOCKED); group watch agents accept exactly one (GROUP_READ_POOL_SINGLE otherwise). It does not retarget the agent: target and type are fixed at creation, archive and recreate instead.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
agentId | string | Yes | — | (min length: 1) |
name | string | No | — | (min length: 1) |
responseMode | auto_send | review_first | No | — | |
accountIds | string[] | No | — | |
actAccountIds | string[] | No | — | |
publicReplyConfig | object | No | — | |
silenceHours | integer | No | — | (min: 1, max: 720) |
followUpDelaysHours | number[] | No | — | |
agentScript | string | No | — | The agent’s standing orders, layered BELOW the workspace playbook: it wins where the two conflict and the workspace playbook applies where it is silent. Say what to DO at each stage of this thread (what to ask first, what counts as an answer, when to stop) and nothing about how to sound: tone, length and emoji come from the sender’s measured voice profile, and an instruction here overrides a measurement with a guess, then shows up in the message as the model naming the tone it was asked for. Max 6000 characters, enforced server-side. Empty string clears it. (max length: 6000) |
pause_signal_agent
Section titled “pause_signal_agent”Full name: campaignstack_pause_signal_agent
Pause a signal agent, stopping feed polling and workflow execution; data is preserved. Call this when the user names a watcher and says to pause it: it stops work the workspace expects. Freezes leads in the workflow rather than cancelling them. Not permanent: campaignstack_resume_signal_agent undoes it.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
agentId | string | Yes | — | (min length: 1) |
resume_signal_agent
Section titled “resume_signal_agent”Full name: campaignstack_resume_signal_agent
Resume a paused signal agent, re-enabling feed polling and workflow execution; leads frozen at the pause pick up where they were. Call this when the user asks to turn a paused watcher back on. Connection-watch and message agents cannot resume while their account is disconnected (AGENT_ACCOUNT_UNAVAILABLE). Not for creating one: campaignstack_create_signal_agent does that.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
agentId | string | Yes | — | (min length: 1) |
delete_signal_agent
Section titled “delete_signal_agent”Full name: campaignstack_delete_signal_agent
Deprecated name for campaignstack_archive_signal_agent, which is what this does: it archives rather than deletes. Use campaignstack_archive_signal_agent.
Parameters
Section titled “Parameters”| Name | Type | Required | Default | Description |
|---|---|---|---|---|
agentId | string | Yes | — | (min length: 1) |