Aller au contenu

propose_email

Show an email of the sequence

Action · mcp:actPose une questionOuvert à l'étape : Target confirmed, choosing a plan

Montre à l'utilisateur un email de sa séquence de 3 et le lui fait valider. À chaque changement demandé, l'assistant réécrit ce même email et rappelle l'outil avec la même position, puis passe au suivant.

Description lue par le modèleEnvoyée telle quelle dans tools/list, en anglais.
Show the user ONE email of their 3-email sequence and let them settle it: start at position 1, write each next one as a follow-up of the one they settled, and on every change they ask for, rewrite that same email and call this again with the same position. It returns a question: put it to the user and call this again with their answer, never yours. The first email carries no link, no image and no pixel, or it is refused. Nothing is saved or sent here.

L'utilisateur dit

Écris mon premier email — court, sans blabla.

tools/call · Arguments envoyés par l'assistant
{
"name": "propose_email",
"arguments": {
"position": 1,
"subject": "Missed calls at {{companyName}}",
"body": "Hi {{firstName}},\n\nHow many calls does your front desk miss on a busy Monday?\n\nWe answer them for 120 clinics in France, day and night.\n\nWorth a quick chat?\n\nAna"
}
}
positionintegerobligatoire1–3

Which email of the sequence this is. The first one is 1.

subjectstringobligatoire1–200 caractères
bodystringobligatoire1–4000 caractères

The email itself. The only personalisation variables that exist are {{firstName}}, {{lastName}}, {{companyName}}, spelled exactly like that; the server refuses the first email of a sequence when it carries any other one.

answersobjet[]facultatif≤ 12 éléments

The user's answers to the cards this tool showed, each with the id of its card. Pass back the list the last call returned, plus the new answer.

  • card stringobligatoire — The card id this answer was given to.
  • answer stringobligatoire — The choice id, or the user's own words.
Schéma d'entrée
{
"type": "object",
"properties": {
"position": {
"type": "integer",
"minimum": 1,
"maximum": 3,
"description": "Which email of the sequence this is. The first one is 1."
},
"subject": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"body": {
"type": "string",
"minLength": 1,
"maxLength": 4000,
"description": "The email itself. The only personalisation variables that exist are {{firstName}}, {{lastName}}, {{companyName}}, spelled exactly like that; the server refuses the first email of a sequence when it carries any other one."
},
"answers": {
"description": "The user's answers to the cards this tool showed, each with the id of its card. Pass back the list the last call returned, plus the new answer.",
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"card": {
"type": "string",
"description": "The card id this answer was given to."
},
"answer": {
"type": "string",
"description": "The choice id, or the user's own words."
}
},
"required": ["card", "answer"]
}
}
},
"required": ["position", "subject", "body"]
}

Sorte de résultatchoicesending_choiceemail_step

Schéma de sortie
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": ["choice", "sending_choice", "email_step"],
"description": "choice: a question to put to the user. sending_choice and email_step: what their answer recorded."
}
},
"required": ["kind"],
"additionalProperties": {}
}
  • Commencer en position 1 ; écrire chaque email suivant comme une relance de celui que l'utilisateur a validé.
  • Le premier email est refusé s'il porte un lien, une image ou un pixel.
  • Rien n'est enregistré ni envoyé ici : save_sequence enregistre ce qui a été validé.