Moosend ACTION
Add subscriber
Adds a new subscriber to the specified mailing list. If there is already a subscriber with the specified email address in the list, an update will be performed instead. The rate limit for this request is 10 requests per 10 seconds (*per API key). See the docs for more info.
- Action
- Writes data
- Destructive
- API key
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Moosend account once, then configure and run Add subscriber 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: "moosend-add-subscriber",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
moosend: { authProvisionId: "apn_xxxxxxx" },
email: "Email",
mailingListId: "Mailing List 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": "moosend-add-subscriber",
"configured_props": {
"moosend": { "authProvisionId": "apn_xxxxxxx" },
"email": "Email",
"mailingListId": "Mailing List 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": "moosend",
},
},
},
)
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: "moosend-add-subscriber",
arguments: {
email: "Email",
mailingListId: "Mailing List 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 |
|---|---|---|
email Email | string | The email address of the member Required |
mailingListId Mailing List ID | string | The ID of the mailing list to add the new member. Example: a589366a-1a34-4965-ac50-f1299fe5979e. Required Dynamic |
name Name | string | The name of the subscriber. Example: John Doe. Optional |
hasExternalDoubleOptIn Has External Double Opt In | string | When true, flags the added member as having given their subscription consent by other means. Optional |
customFields Custom Fields | string[] | A list of name-value pairs that match the member's custom fields defined in the mailing list. For example, if you have two custom fields named Age and Country, you should specify values for them as following example. Age=25 and Country=USA. Optional |
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
- moosend-add-subscriber
- Version
- 0.2.2
- App
- Moosend
- Authentication
- API key
- Read-only
- No
- Destructive
- Yes
- Open world
- Yes
- Source
- View on GitHub ↗