accounts_get
ChatGPTGet details of an account. Use the accountId from workspaces_list.
attachments_get
ChatGPTGet an attachment by its Id: file name, size, content type, the files inside it when it is an archive or a signature container, and the signatures it carries. Pass envelopeId whenever the attachment belongs to an envelope: the answer then respects which roles may see that attachment and returns the document's own copy. To get the file itself, prefer files_download_link with target attachment; includeContent returns the bytes base64-encoded, up to 5 MB, and only suits a small file. To read what an envelope document says, documents_extract_text returns text and is far cheaper.
attachments_upload
ChatGPTStore a small file sent inline as base64 and get the attachment Id that an attachment field, an external document or a quick send document is filled with. Prefer files_upload_link: it takes a file of any size without passing its bytes through this connection, and the user can drop the file themselves. Use this tool only for a small file you already hold in full. The stored file is not part of any envelope yet: set the returned attachmentId as the value of the attachment field with envelopes_set_fields or envelopes_create_from_template, or name it in a document of envelopes_quick_send, otherwise it is discarded as unused after a while. Upload the file once per field that needs it: the same attachment cannot sit in two fields of an envelope, even when the file is the same.
categories_list
ChatGPTList the template categories visible in a mailbox. A category is a folder templates are filed under; categories form a tree through parentId and carry an access level of their own, so a mailbox sees its own categories together with the account, public and official ones. Returns them flat, in creation order. Use the Ids here with the categoryId filter of templates_search, and to read the names behind the categories templates_get reports.
dictionaries_get
ChatGPTGet one dictionary with the exact columns its rows are made of. Read this before querying rows: the column Ids returned here are the keys of every row, and a filter in dictionaries_query_rows names its column by Id or by name.
dictionaries_query_rows
ChatGPTRead rows of a dictionary, optionally narrowed by filters on its columns. Values are always strings, keyed by column Id because column names may repeat. Rows come back in creation order; this tool cannot sort them. Call dictionaries_get first to map column Ids to names. When the dictionary is not shared with this mailbox, pass envelopeId with the documentId and fieldName of the select-dictionary field being filled: the envelope then grants the reading, the template's own restrictions on that field are applied, and each row comes back with the single column that field takes its value from. Use keyword to search within it, and pass the returned rowId as recordId when setting the value.
dictionaries_search
ChatGPTSearch the dictionaries visible in a mailbox. A dictionary holds static tabular data that templates look values up in. Searches every access level at once by default; pass accessLevel to look at one of them alone. Call dictionaries_get for the column schema.
documents_get_file
ChatGPTGet a document as a file, rendered to PDF and base64-encoded, up to 5 MB. Prefer files_download_link with target document_pdf: it works for any size, keeps the bytes out of this connection, and the user can open the link themselves. Ask for this only when the bytes themselves are needed and the document is small: documents_extract_text answers questions about the content far more cheaply.
documents_list
ChatGPTList the documents of an envelope as they stand right now: the fields each one defines, the value every field currently holds, the rows of its dynamic tables and which signatures are still missing. This is the tool to read before filling anything in; documents_extract_text gives the readable text instead.
envelopes_approve
ChatGPTApprove whatever this mailbox is being asked to approve. When an approval flow is waiting on this mailbox, its step is approved and the flow moves on; otherwise the mailbox's approver role in the envelope flow is completed. Only call this when envelopes_get lists approve among the available actions.
envelopes_assign_participants
ChatGPTAssign or change who holds a flow role. On a draft any role can still be moved; on an envelope already out only roles that have not acted yet can be handed over, and the new person is notified. Each assignment needs exactly one of mailboxId or email. Roles and their current holders come from envelopes_get.
envelopes_cancel
ChatGPTCancel an envelope that is already out: everyone still waiting stops being asked to act and the envelope ends as CANCELLED. Only envelopes in SENT, WAITING or ON_APPROVAL can be cancelled, and this cannot be undone. Recipients see the reason, so write it for them. A draft is not cancelled but deleted, with envelopes_delete_draft.
envelopes_create_from_template
ChatGPTCreate a draft envelope from a template. Call templates_get first: every non-sender role has to be assigned here, and the fields you prefill have to exist on the documents. Nothing is sent to anyone; envelopes_validate then envelopes_send finish the job. Read the returned subject back, a template that defines its own subject overrides what you pass.
envelopes_delete_draft
ChatGPTDelete a draft envelope for good, together with its history. Only envelopes still in DRAFT can be deleted this way and this cannot be undone; an envelope that was already sent is stopped with envelopes_cancel instead.
envelopes_get
ChatGPTGet where one envelope stands right now: its status, every participant and whether the flow is waiting for them, the template version it runs on, account metadata, a summary of each document, and what this mailbox is expected to do next. Field values live in documents_list.
envelopes_quick_send
ChatGPTSend files to people without a template. Each file becomes one document of a new envelope and goes out immediately: there is no draft to review and this cannot be undone. Up to 50 files in one call. A file is named either by attachmentId, when it is already stored in this service, or inline as base64 when it is small; never re-encode a large file into the arguments, upload it with attachments_upload first. Use envelopes_create_from_template when the recipients have to fill anything in, or when you want to check the envelope before it leaves.
envelopes_reject
ChatGPTRefuse what this mailbox is being asked to do. When an approval flow is waiting on this mailbox, its step is rejected and the flow stops there. Otherwise the envelope itself is refused and ends as CANCELLED for everyone, exactly as envelopes_cancel does. Either way the reason is recorded and shown, and neither can be undone.
envelopes_search
ChatGPTSearch the envelopes of a mailbox. Narrow by scope to look at one box only: inbox for what was received, outbox for what was sent, draft for what is not sent yet, shared for what other mailboxes shared. Filter further by status, sender or recipient, template, dates, account metadata and the values inside the documents. Every parameter is combined with AND. Returns a page of summaries; call envelopes_get for the runtime state of one envelope. Names are not accepted where an id is expected, and a name that resolves to nothing makes that filter disappear rather than narrow, so resolve first and never guess: - a kind of document ("invoices", "leave requests") is a template - templates_search gives the id, and templates_get then lists the fields it carries; - a company or person is a mailbox - mailboxes_search gives the id for sender or recipient; - a label must exist in this mailbox - labels_list gives the names; - a value recorded in the documents (a due date, an amount, a counterparty) goes in fields, using a field templates_get reports with searchable true. Lookups match on substrings and there is no morphology, so search by the stem: "invoic" finds "Invoice" and "invoices". If a lookup returns nothing, shorten the keyword and try again before concluding it does not exist. What this search cannot do: read the text inside documents, sort by anything but the six sort columns, or return a "top N". Say so plainly rather than approximating.
envelopes_send
ChatGPTHand the envelope on. From a draft it goes out to the recipients, so run envelopes_validate first and only send when it reports canSend; a subject is mandatory by then, pass one here if the draft has none, and read the returned subject back because a template that defines its own overrides it. On an envelope already in flight this submits whatever this mailbox filled in with envelopes_set_fields and tables_apply_changes and completes its step, which moves the flow to whoever is next. That works for a fill step only: an approval step is completed by envelopes_approve, and a step waiting for a signature cannot be completed here at all, whatever envelopes_validate reports about errors. Either way people are notified and it cannot be undone.
envelopes_set_fields
ChatGPTSet field values on an envelope. A draft takes anything from its sender; an envelope already out takes the fields of the roles this mailbox holds, while the flow is waiting for it. On a select-dictionary field pass recordId alongside the value so the chosen dictionary row is recorded and its lookup fields resolve. On an einksign or initials field the value is a png data URI: take it unchanged from get_user_signature when the user has one saved, and otherwise generate one as docflow://docs/field/einksign describes. A checkbox takes the string "1" or "0", never true or false. Values are saved, not submitted: keep calling this and tables_apply_changes as needed, then envelopes_send to hand the envelope on. Field names come from documents_list or templates_get; table rows go through tables_apply_changes.
envelopes_update
ChatGPTChange what the sender owns on an envelope: its subject, its covering message and the account metadata filed with it. Subject and message can only be changed while the envelope is still a draft, and a template that defines its own overrides them; metadata can be updated after sending too.
envelopes_validate
ChatGPTCheck whether an envelope is ready to go out and get back everything that stands in the way: missing required values, unassigned roles, anything the documents reject. Run this before envelopes_send rather than sending and reading the refusal.
files_download_link
ChatGPTGet a one-time link to download a file of any size outside this connection. This is the preferred way to get a file; use base64 tools only for a small one. Give url to the person, who opens it in a browser, or GET directUrl yourself. The link works once, until expiresAt. target is what to download: attachment (attachmentId, plus envelopeId when the attachment belongs to an envelope), document_pdf (a document rendered to PDF), envelope_final_pdf (the final PDF of a completed document), envelope_zip (the envelope archive, or one document's archive with documentId), audit_trail_pdf, signature_container (the signed container of a document). All targets except attachment are built on request: the state is preparing until the file is ready, and GET answers 425 until then. Read docflow://docs/files for details.
files_upload_link
ChatGPTGet a one-time link to upload a file of any size up to maxSizeBytes outside this connection. This is the preferred way to put a file in; use attachments_upload only for a small one. Give url to the person, who drops the file on the page, or send it yourself: PUT the raw bytes to directUrl, or POST it as multipart field 'file'. The link works once, until expiresAt. Then call files_upload_status with uploadId to get the attachmentId, and use it exactly like one from attachments_upload. Pass the attachmentType of the attachment field the file is meant for, so a wrong file is refused on upload.
files_upload_status
ChatGPTCheck an upload link from files_upload_link. state is ready while the file has not arrived yet, used once it is stored, with attachmentId set, and expired when the link timed out before a file came.
get_user_profile
ChatGPTGet the current user's profile: name, email, language and time zone.
get_user_signature
ChatGPTGet the current user's saved signature and initials, each as a data:image/png;base64 URI ready to be used as the value of an einksign or initials field. Pass such a value on unchanged: never decode, re-encode, resize or strip the prefix, it is already valid for the field. hasSignature and hasInitials say whether each one exists; false is the answer, not a failure, and calling again returns the same thing because it only changes when the user saves an image in the web app. Generate the missing image instead, as docflow://docs/field/einksign and docflow://docs/field/initials describe. One call covers every einksign and initials field of an envelope, however many there are. These are full images, so call this only when the images themselves are needed; get_user_profile covers everything else about the user.
labels_assign
ChatGPTPut one label of this mailbox on one or more envelopes. The label stays private to this mailbox and does not touch the envelope itself, so it is safe on an envelope in any status. Name the label by labelId or by labelName; the label has to exist already, this tool does not create one. Assigning a label an envelope already carries changes nothing.
labels_list
ChatGPTList the labels of a mailbox. A label is a private marker this mailbox puts on envelopes: it belongs to the mailbox that created it, no other participant of an envelope sees it, and it changes nothing in the envelope or its flow. Use the Ids returned here with labels_assign, labels_unassign and the label filter of envelopes_search. Read docflow://docs/labels for the rules.
labels_unassign
ChatGPTTake one label of this mailbox off one or more envelopes. Only the marker is removed: the label itself and the envelopes stay as they are. Name the label by labelId or by labelName. Removing a label an envelope does not carry changes nothing.
mailboxes_get
ChatGPTGet details of one mailbox: its name, the account owning it, and the permission codes the current user holds in it. Use the mailboxId from workspaces_list.
mailboxes_search
ChatGPTFind the mailboxes of other companies and people by name, alias, contact name or email. Use it to turn a counterparty a person named — "invoices from Kurkuma" — into the mailbox ids envelopes_search accepts as sender or recipient. A name on its own is not a usable sender or recipient; one organisation may own several mailboxes, so consider every id returned. For the caller's own mailboxes use workspaces_list.
tables_apply_changes
ChatGPTAdd rows to a dynamic table or change the values in rows it already has. Row indexes are zero-based and come from tables_get; add appends to the end, update writes into an existing row, clear empties one. Rows cannot be removed once created, so clear a row you no longer need. On a select-dictionary cell pass recordId next to the value, the same way envelopes_set_fields takes it. Changes are saved, not submitted: call envelopes_send once everything this mailbox owns is filled in.
tables_get
ChatGPTGet one dynamic table of an envelope document: its columns, the fields that make up a row, and every row currently in it. Table names come from documents_list or envelopes_get.
templates_get
ChatGPTGet the full definition of one template version: its settings, the flow roles that have to be assigned when an envelope is created from it, and every document with the fields defined on it. Pass envelopeId to read the template an envelope runs on: a recipient can then see the definition behind an envelope addressed to them even when the template itself is not shared with their mailbox, and the version is the one that envelope follows rather than the current one.
templates_search
ChatGPTSearch the templates visible in a mailbox. A template defines the documents, fields and signing roles an envelope is created from. Searches every access level at once by default; pass accessLevel to look at one of them alone. Narrow the result with categoryId, from categories_list. Returns names, access levels and categories; call templates_get for the full definition.
workspaces_list
ChatGPTList the workspaces the current user belongs to: every account, the mailboxes inside it, and the permission codes the user holds at each level. Call this first: every other tool needs an accountId or a mailboxId from here.