Save a document as a template
Saves a PDF once with its signature fields placed per signer role, to send again and again.
$0.001 a call
From your agent’s balance. A call that fails costs nothing.
An example
Keep our trade account agreement as a template: the customer signs and dates at the bottom of page 2, then Henrik countersigns.
Your agent callsesign_save_template$0.001 a call
The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.
{
"name": "trade-account-agreement",
"file_id": "0b8e4c1a-5d2f-4f8e-9a51-2c3d4e5f6a7b",
"title": "Trade account agreement",
"roles": [
"Customer",
"Hansen & Voss"
],
"fields": [
{
"role": 1,
"kind": "signature",
"page": 1,
"x": 10,
"y": 70,
"width": 30,
"height": 5
},
{
"role": 1,
"kind": "date",
"page": 1,
"x": 45,
"y": 70,
"width": 15,
"height": 4
},
{
"role": 2,
"kind": "signature",
"page": 1,
"x": 10,
"y": 82,
"width": 30,
"height": 5
}
]
}Use it when
A contract, NDA or waiver goes out often, to different people.
- For a one-off document, use
esign_send.
What it does
Save a PDF from the file store once, with its fields placed per signer role (page, x, y, width and height in percent of the page, as in esign_send), so contracts, NDAs and waivers go out later without placing a field again. roles names who signs, in order; every role needs a signature field. Saving a name again replaces it. $0.001.
What comes back
template: its name, title, PDF, roles and fields (each with its role), note, order and expiry. Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
nameRequired | string | The template's name, like service-agreement. 2 to 60 characters, matches ^[a-z0-9][a-z0-9-]*[a-z0-9]$. |
file_idRequired | string | A PDF in the file store. Exactly 36 characters. |
titleRequired | string | What signers see, e.g. "Service agreement". 1 to 200 characters. |
rolesRequired | array of strings | Who signs, in order, e.g. ["Customer", "Hansen & Voss"]. 1 to 10 items. |
fieldsRequired | array of objects | 1 to 300 items. |
fields[].kindRequired | string | One of: signature,initials,name,date,text,checkbox. |
fields[].pageRequired | integer | At least 1. |
fields[].xRequired | number | Left edge, in percent of the page width from the left. |
fields[].yRequired | number | Top edge, in percent of the page height from the top. |
fields[].widthRequired | number | In percent of the page width. |
fields[].heightRequired | number | In percent of the page height. |
fields[].required | boolean | Default true (false for checkboxes). |
fields[].label | string | Shown to the signer, e.g. "Company name". Up to 120 characters. |
fields[].roleRequired | integer | Whose field: the role's number in roles, from 1. At least 1. |
message | string | The note to signers each time. Up to 2,000 characters. |
order | string | One of: parallel,sequential. Default: parallel. |
expires_in_days | integer | 1 to 90. Default: 30. |
The call
Over MCP, call esign_save_template on https://api.conecto.chat/mcp/esign. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/esign_save_template \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"trade-account-agreement","file_id":"0b8e4c1a-5d2f-4f8e-9a51-2c3d4e5f6a7b","title":"Trade account agreement","roles":["Customer","Hansen & Voss"],"fields":[{"role":1,"kind":"signature","page":1,"x":10,"y":70,"width":30,"height":5},{"role":1,"kind":"date","page":1,"x":45,"y":70,"width":15,"height":4},{"role":2,"kind":"signature","page":1,"x":10,"y":82,"width":30,"height":5}]}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
not_found404 | The file is not in the store. | Upload the PDF with files_upload first. |
not_pdf400 | The file is not a PDF. | Make one with documents_convert_to_pdf. |
invalid_input400 | A role has no signature field, a field does not fit its page, or the name is not lowercase letters, digits and dashes. | Fix what the message names. |
limit_reached409 | The account keeps 100 templates already. | Delete one first. |
More E-signature tools
All 10 tools- Send for signature
esign_sendSends a PDF from the file store to up to 10 people to sign; each gets their own link by email.$0.50 a call - Send a template for signature
esign_send_templateSends a saved template to new signers, one per role: one request, or up to 50 at once.$0.50 per request sent - List templates
esign_list_templatesThe saved templates, with their roles and fields.Free* - Delete a template
esign_delete_templateDeletes a saved template; requests already sent from it stay as they are.Free - Get a signature request
esign_getWhere a signature request stands: each signer's status, and the signed PDF once everyone signed.Free* - List signature requests
esign_listSignature requests, newest first, optionally of one status.Free* - Get a signer's link
esign_signing_linkOne signer's signing link, to hand over yourself.Free* - Remind signers
esign_remindEmails everyone who still has to sign a reminder with their link, at most once a day.$0.02 a call
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md