Skip to content

Signal Agents

Create and manage signal agents (audiences) — the engagement-intelligence feature that watches posts/events and turns engagers into scored leads.

Full name: campaignstack_list_signal_agents

signals:read Read-only Idempotent

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.

NameTypeRequiredDefaultDescription
workspaceIdstringNoWorkspace 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)
includeArchivedbooleanNo
includeAccountMaintenancebooleanNo

Full name: campaignstack_get_signal_agent

signals:read Read-only Idempotent

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.

NameTypeRequiredDefaultDescription
agentIdstringYes(min length: 1)

Full name: campaignstack_get_signal_agent_stats

signals:read Read-only Idempotent

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.

NameTypeRequiredDefaultDescription
agentIdstringYes(min length: 1)

Full name: campaignstack_list_signal_agent_leads

signals:read Read-only Idempotent

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.

NameTypeRequiredDefaultDescription
agentIdstringYes(min length: 1)
limitnumberNo50(min: 1, max: 200)

Full name: campaignstack_create_signal_agent

signals:write

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.

NameTypeRequiredDefaultDescription
workspaceIdstringNoWorkspace 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)
namestringYes(min length: 1)
typeprofile_feed | company_feed | group_watch | post_engagementYes
targetobject | object | objectYes
targetNamestringYes(min length: 1)
responseModeauto_send | review_firstYes
accountIdsstring[]Yes
actAccountIdsstring[]Yes
publicReplyConfigobjectNo
silenceHoursintegerNo(min: 1, max: 720)
followUpDelaysHoursnumber[]No

Full name: campaignstack_update_signal_agent

signals:write

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.

NameTypeRequiredDefaultDescription
agentIdstringYes(min length: 1)
namestringNo(min length: 1)
responseModeauto_send | review_firstNo
accountIdsstring[]No
actAccountIdsstring[]No
publicReplyConfigobjectNo
silenceHoursintegerNo(min: 1, max: 720)
followUpDelaysHoursnumber[]No
agentScriptstringNoThe 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)

Full name: campaignstack_pause_signal_agent

signals:write

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.

NameTypeRequiredDefaultDescription
agentIdstringYes(min length: 1)

Full name: campaignstack_resume_signal_agent

signals:write

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.

NameTypeRequiredDefaultDescription
agentIdstringYes(min length: 1)

Full name: campaignstack_delete_signal_agent

signals:write Destructive

Deprecated name for campaignstack_archive_signal_agent, which is what this does: it archives rather than deletes. Use campaignstack_archive_signal_agent.

NameTypeRequiredDefaultDescription
agentIdstringYes(min length: 1)