View as Markdown
Signal icon

Signal ACTION

Send Message

Send a Signal message to one or more recipients. See the documentation.
  • Action
  • Writes data
  • API key
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's Signal account once, then configure and run Send Message from your backend or agent.

import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "signal-send-message",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    signal: { authProvisionId: "apn_xxxxxxx" },
    phoneNumber: "Phone Number",
    textMode: "Text Mode",
  },
})

console.log(result)

SCHEMA

Inputs

Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.

Send Message inputs
Property Type Description
phoneNumber Phone Number string
Your registered Signal phone number (e.g. +14151234567).
Required
textMode Text Mode string
Set to styled to enable formatting: italic, bold, ~strikethrough~, ||spoiler||, monospace.
Optional
recipients Recipients string[]
One or more phone numbers, usernames, or group IDs to send the message to.
Required
message Message string
The message text to send.
Required
attachments Attachments string[]
File paths (e.g. /tmp/file.pdf) or URLs to attach to the message. Files will be base64-encoded and sent with their detected MIME type and filename.
Optional
syncDir SyncDir dir
Required

REFERENCE

Tool details

Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.

Registry key
signal-send-message
Version
0.0.1
App
Signal
Authentication
API key
Read-only
No
Destructive
No
Open world
Yes