Create organization letter
What this endpoint does: Creates a new formal business letter linked to an organization. Letters can be addressed to the organization itself or to a specific organization member (contact person).
Required information:
- Organization ID: The organization this letter belongs to (must exist in workspace)
- Subject: Title or topic of the letter
- Date of letter: The date shown on the letter (can be backdated if needed)
- Address type: Choose between organization address or member’s private address
- Body content: The letter text in HTML or Markdown format
Optional information:
- Member ID: If provided, links the letter to a specific organization member/contact person. The member must belong to the specified organization.
Content formatting: Accepts Markdown or HTML for complex formatting. This content is rendered by the Leadtime rich editor, not by a plain Markdown viewer.
For quick/simple text, Markdown is acceptable. For polished user-facing content from an agent or integration, prefer structured HTML because it preserves editor blocks, links, and layout more predictably.
Use only the nodes and marks documented below for this field. Supported editor features differ by endpoint and field. Choose formatting for readability, not decoration: use headings for real sections, paragraphs for narrative text, lists or tables for structured facts, blockquotes for quoted context, callouts for important outcomes/risks/notes when supported, and explicit anchors for links. Do not rely on bare URLs or Markdown links when the link must be clickable; use explicit anchors such as <a href=“https://example.com” target=“_blank” rel=“noopener noreferrer nofollow”>link text</a>.
In HTML you can use:
Node Types and Marks
Nodes
paragraph Type: block Content: inline* (inline only — do not use block tags such as <p> inside; use e.g. <br>, <strong>, <em>, <span>…) Default paragraph. extraPlaceholder is an internal structure for the editor to show a ghost placeholder in empty “template” lines (ProseMirror JSON fragment or null). For normal agent output leave extraPlaceholder as null. Only set it if you are intentionally mirroring a field placeholder the user already has in the open editor; do not set random placeholder data for free-form answers. Atts:
- extraPlaceholder: null
<p class="paragraph-base" extraplaceholder="null/some-value"></p>
heading Type: block Content: inline* (inline only — do not use block tags such as <p> inside; use e.g. <br>, <strong>, <em>, <span>…) Atts:
- level: 1
<h1 class="heading-base"></h1>
bulletList Type: block list Content: listItem+ Atts: none
<ul class="list-base"><li></li></ul>
hardBreak Type: inline Atts: none
<br>
horizontalRule Type: block Atts: none
<hr class="hr-base">
orderedList Type: block list Content: listItem+ Atts:
- start: 1
- type: null
<ol class="order-list-base" type="null/some-value"><li></li></ol>
listItem Content: (paragraph|list)* (paragraphs and/or lists, in any order) Atts: none
<li></li>
blockquote Type: block Content: block+ (one or more block child nodes (e.g. paragraph, list, …)) Atts: none
<blockquote class="blockquote-base"><p class="paragraph-base"></p></blockquote>
variable Type: inline Document/template variable token (span with data-type=“variable” and data-id).
- id: Variable key, often scoped (e.g. currentUser.firstName, project.name). Only use keys that exist for the document type you are in; product docs list the allowed variable ids. Do not invent new variable names in HTML for production templates. Atts:
- id: null
<span data-type="variable" data-id="null/some-value" id="null/some-value"></span>
Marks
link Atts:
- href: null
- target: _blank
- rel: noopener noreferrer nofollow
- class: null
- title: null
<a target="_blank" rel="noopener noreferrer nofollow" href="">link text example</a>
bold Atts: none
<strong>bold text example</strong>
code Atts: none
<code>code text example</code>
italic Atts: none
<em>italic text example</em>
strike Atts: none
<s>strike text example</s>
underline Atts: none
<u>underline text example</u>
Available Template Variables
You can use the following variables in your organization letter body. Variables are represented as HTML spans:
clientCompanyName, contactPerson, senderNameAndPosition, senderName, senderPosition, todayDate, dearCustomer, signature
Example HTML: <span data-type="variable" data-id="clientCompanyName">ACME Corp</span>, <span data-type="variable" data-id="contactPerson">John Doe</span>
Validation rules:
- Organization ID must exist and be accessible in your workspace
- If member ID is provided, it must belong to the specified organization
- Subject cannot be empty
- Body content cannot be empty
- Date must be a valid date
What happens after creation:
- Letter is saved and linked to the organization
- Letter appears in the organization’s letters list
- Letter can be viewed, edited, or downloaded as PDF
- Letter body is automatically converted from HTML/Markdown to internal format (IDoc)
Use cases:
- Create formal correspondence with customers or partners
- Generate personalized letters using template variables
- Document business communication in a centralized location
- Track all letters sent to specific organizations or members
Note: Requires writeLetters permission on the Organizations resource.
/organizations/lettersAuthorizationOAuth2 access token · headerrequiredapi:writeAuthorizationBearer token (JWT) · headerrequiredfieldsToReturnstringComma-separated list of top-level response fields to return. Overrides the endpoint compact default unless responseShape=full is used.
responseShapestringAdvanced override. Omit for the endpoint compact default. Use full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
compactfullLT-Response-ShapestringAdvanced override. Set to full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
fullapplication/jsonaddressTypeobjectrequiredDetermines which address is used on the letter. Use "Organization" for the organization's main address, or "Member" for the member's private address (requires memberId to be set).
Show propertiesHide properties
objectbodystringrequiredAccepts Markdown or HTML for complex formatting. This content is rendered by the Leadtime rich editor, not by a plain Markdown viewer.
For quick/simple text, Markdown is acceptable. For polished user-facing content from an agent or integration, prefer structured HTML because it preserves editor blocks, links, and layout more predictably.
Use only the nodes and marks documented below for this field. Supported editor features differ by endpoint and field. Choose formatting for readability, not decoration: use headings for real sections, paragraphs for narrative text, lists or tables for structured facts, blockquotes for quoted context, callouts for important outcomes/risks/notes when supported, and explicit anchors for links. Do not rely on bare URLs or Markdown links when the link must be clickable; use explicit anchors such as <a href="https://example.com" target="_blank" rel="noopener noreferrer nofollow">link text</a>.
In HTML you can use:
Node Types and Marks
Nodes
paragraph Type: block Content: inline* (inline only — do not use block tags such as <p> inside; use e.g. <br>, <strong>, <em>, <span>…) Default paragraph. extraPlaceholder is an internal structure for the editor to show a ghost placeholder in empty “template” lines (ProseMirror JSON fragment or null). For normal agent output leave extraPlaceholder as null. Only set it if you are intentionally mirroring a field placeholder the user already has in the open editor; do not set random placeholder data for free-form answers. Atts:
- extraPlaceholder: null
<p class="paragraph-base" extraplaceholder="null/some-value"></p>
heading Type: block Content: inline* (inline only — do not use block tags such as <p> inside; use e.g. <br>, <strong>, <em>, <span>…) Atts:
- level: 1
<h1 class="heading-base"></h1>
bulletList Type: block list Content: listItem+ Atts: none
<ul class="list-base"><li></li></ul>
hardBreak Type: inline Atts: none
<br>
horizontalRule Type: block Atts: none
<hr class="hr-base">
orderedList Type: block list Content: listItem+ Atts:
- start: 1
- type: null
<ol class="order-list-base" type="null/some-value"><li></li></ol>
listItem Content: (paragraph|list)* (paragraphs and/or lists, in any order) Atts: none
<li></li>
blockquote Type: block Content: block+ (one or more block child nodes (e.g. paragraph, list, …)) Atts: none
<blockquote class="blockquote-base"><p class="paragraph-base"></p></blockquote>
variable Type: inline Document/template variable token (span with data-type="variable" and data-id).
- id: Variable key, often scoped (e.g. currentUser.firstName, project.name). Only use keys that exist for the document type you are in; product docs list the allowed variable ids. Do not invent new variable names in HTML for production templates. Atts:
- id: null
<span data-type="variable" data-id="null/some-value" id="null/some-value"></span>
Marks
link Atts:
- href: null
- target: _blank
- rel: noopener noreferrer nofollow
- class: null
- title: null
<a target="_blank" rel="noopener noreferrer nofollow" href="">link text example</a>
bold Atts: none
<strong>bold text example</strong>
code Atts: none
<code>code text example</code>
italic Atts: none
<em>italic text example</em>
strike Atts: none
<s>strike text example</s>
underline Atts: none
<u>underline text example</u>
Available Template Variables
You can use the following variables in your organization letter body. Variables are represented as HTML spans:
clientCompanyName, contactPerson, senderNameAndPosition, senderName, senderPosition, todayDate, dearCustomer, signature
Example HTML: <span data-type="variable" data-id="clientCompanyName">ACME Corp</span>, <span data-type="variable" data-id="contactPerson">John Doe</span>
dateOfLetterstring<date>requiredThe date shown on the letter (ISO 8601 date format: YYYY-MM-DD). This can be backdated if needed. The date is displayed on the letter document and used for sorting and filtering.
memberIdobject | nullOptional UUID of the organization member (contact person) this letter is addressed to. If provided, the member must belong to the specified organization. Leave empty or set to null for letters addressed to the organization itself.
organizationIdstringrequiredThe UUID of the organization this letter belongs to. The organization must exist in your workspace and be accessible with your permissions.
subjectstringrequiredThe subject or title of the letter. This appears in letter listings and as the document title when exporting to PDF.
addressTypeobjectrequiredThe address type used for this letter. "Organization" means the organization's main address was used, "Member" means a member's private address was used.
Show propertiesHide properties
objectbodystringrequiredThe letter body content in HTML format. This has been converted from the internal IDoc storage format to HTML for easy display and processing. Includes all formatting, template variables (as HTML spans), and rich text elements.
createdAtstring<date-time>requiredISO 8601 timestamp (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when the letter was first created in the system.
createdBystringrequiredUUID of the user who created this letter. Use this to track authorship and for audit purposes.
dateOfLetterstring<date-time>requiredThe date shown on the letter in ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ). This is the date that appears on the letter document itself, which may differ from the creation date.
idstringrequiredUnique identifier (UUID) of the organization letter
lastUpdatedstring<date-time>requiredISO 8601 timestamp (YYYY-MM-DDTHH:mm:ss.sssZ) indicating when the letter was last modified. This is automatically updated whenever any field of the letter is changed.
memberIdobject | nullrequiredUUID of the organization member (contact person) this letter is addressed to. Will be null if the letter is addressed to the organization itself rather than a specific member.
organizationIdstringrequiredUUID of the organization this letter belongs to. Use this to link the letter to the correct organization.
subjectstringrequiredThe subject or title of the letter as displayed in listings and on the document.
Validation errors
errorsobjectmessagestringstatusCodenumberUnauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions