HappierleadsDocs
MCP server

update_campaign_step

Rewrite one email (step) of an existing campaign: its subject, body and/or delay.

Edit campaign email · Changes data

Rewrite one email (step) of an existing campaign: its subject, body and/or delay. Only the fields you pass change. Get campaignId from list_campaigns and templateId from get_campaign (emailCampaignTemplates[]._id); a templateId that is not a step of that campaign is refused. The edit is rejected (HTTP 400 with the reasons) when a merge field has no fallback or the template cannot render; nothing is saved then. Contacts parked in error-sending because of this step are retried after a successful save. Returns the updated step. Writing rules: Write the body as plain text, one paragraph per line, no blank lines between paragraphs (each line becomes one <p>; never add empty paragraphs or <br><br> for spacing). Merge fields need a fallback, e.g. {{ first_name | there }}, {{ company_name | your company }}. End every body with {{sender_signature}} then {{unsubscribe_text}}, each on its own line, and nothing after them; never type your own sign-off or unsubscribe sentence.

ConnectionAccount URL, team member URL or OAuth

Parameters

ParameterTypeRequiredDescription
campaignIdstringYesEmail campaign id from list_campaigns.
templateIdstringYesId of the step to edit, from get_campaign emailCampaignTemplates[]._id (24 hex characters).
subjectstringNoOptional new subject line. Merge fields need a fallback, e.g. {{ company_name | your team }}.
bodystringNoOptional new body: plain text, one paragraph per line, ending with {{sender_signature}} then {{unsubscribe_text}}.
delayDaysnumberNoOptional whole days to wait after the previous step. 0 for the first step.

Tool definition

What your assistant receives from tools/list:

{
  "name": "update_campaign_step",
  "title": "Edit campaign email",
  "annotations": {
    "title": "Edit campaign email",
    "readOnlyHint": false,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "inputSchema": {
    "type": "object",
    "properties": {
      "campaignId": {
        "type": "string",
        "description": "Email campaign id from list_campaigns."
      },
      "templateId": {
        "type": "string",
        "description": "Id of the step to edit, from get_campaign emailCampaignTemplates[]._id (24 hex characters)."
      },
      "subject": {
        "type": "string",
        "description": "Optional new subject line. Merge fields need a fallback, e.g. {{ company_name | your team }}."
      },
      "body": {
        "type": "string",
        "description": "Optional new body: plain text, one paragraph per line, ending with {{sender_signature}} then {{unsubscribe_text}}."
      },
      "delayDays": {
        "type": "number",
        "description": "Optional whole days to wait after the previous step. 0 for the first step."
      }
    },
    "required": [
      "campaignId",
      "templateId"
    ]
  }
}

On this page