Mural ACTION
Create Textbox
Create a new textbox widget within a given mural. Use a textbox for section headings, instructions, or longer prose that should read as plain text on the canvas rather than as a sticky note. Position is set in pixels and, unless Parent ID is given, is measured from the top-left corner of the mural. See the documentation
- Action
- Writes data
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Mural account once, then configure and run Create Textbox 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: "mural-create-textbox",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
mural: { authProvisionId: "apn_xxxxxxx" },
workspaceId: "Workspace ID",
muralId: "Mural ID",
},
})
console.log(result)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": "mural-create-textbox",
"configured_props": {
"mural": { "authProvisionId": "apn_xxxxxxx" },
"workspaceId": "Workspace ID",
"muralId": "Mural ID"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{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": "mural",
},
},
},
)
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: "mural-create-textbox",
arguments: {
workspaceId: "Workspace ID",
muralId: "Mural ID",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
workspaceId Workspace ID | string | The ID of the Workspace. Required Dynamic |
muralId Mural ID | string | The ID of the Mural. Required Dynamic |
xPosition X Position | integer | The horizontal position of the widget in px (e.g. 100). This is the distance from the left of the parent widget, such as an area. If the widget has no parent widget, this is the distance from the left of the mural. Required |
yPosition Y Position | integer | The vertical position of the widget in px (e.g. 100). This is the distance from the top of the parent widget, such as an area. If the widget has no parent widget, this is the distance from the top of the mural. Required |
text Text | string | The text in the widget Required |
title Title | string | The title of the widget in the outline Optional |
height Height | integer | The height of the widget in px (e.g. 300) Optional |
width Width | integer | The width of the widget in px (e.g. 500) Optional |
hidden Hidden | boolean | If true, the widget is hidden from non-facilitators. Applies only when the widget is in the outline Optional |
parentId Parent ID | string | The ID of the area widget that should contain this textbox, for example 0-12345. When set, X Position and Y Position are measured from the area's top-left corner instead of the mural's. Optional Dynamic |
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
- mural-create-textbox
- Version
- 0.0.2
- App
- Mural
- Authentication
- OAuth
- Read-only
- No
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗