# Create Message — Vestaboard

> Creates a new message for a subscription. See the docs

- Key: `vestaboard-create-message`
- Type: Action (Write)
- Version: 0.0.4
- App: Vestaboard (`vestaboard`) — https://pipedream.com/apps/vestaboard.md
- This page (HTML): https://pipedream.com/apps/vestaboard/actions/create-message
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/vestaboard/actions/create-message/create-message.mjs

## Description

Creates a new message for a subscription. [See the docs](https://swagger.vestaboard.com/docs/vestaboard/b3A6MTYwMTA4OTc-post-v2-0-subscriptions-with-id-message)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `subscriptionId` | `string` | Yes | The ID of the Subscription to which to post Options are loaded from the connected account. |
| `text` | `string` | No | The message to send to the specified Subscription. If text is specified, lines will be centered horizontally and vertically if possible. Character codes will be inferred for alphanumeric and punctuation, or can be explicitly specified in-line in the message with curly braces containing the character code. Either text or characters must be entered. |
| `characters` | `string` | No | A 6x22 two-dimensional array of character codes to send to the specified Subscription. If characters are specified, the characters will be shown in the exact position in the array. See Character Code Reference. Either text or characters must be entered. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
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 accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "vestaboard",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "vestaboard-create-message",
  arguments: {
    subscriptionId: "Subscription",
    text: "Text",
  },
})
```

**TypeScript**

```ts
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: "vestaboard-create-message",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    vestaboard: { authProvisionId: "apn_xxxxxxx" },
    subscriptionId: "Subscription",
    text: "Text",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "vestaboard-create-message",
    "configured_props": {
      "vestaboard": { "authProvisionId": "apn_xxxxxxx" },
      "subscriptionId": "Subscription",
      "text": "Text"
    }
  }'
```

---

- App: https://pipedream.com/apps/vestaboard.md · All apps: https://pipedream.com/apps
