This feature is only available on Growth and Scale plans.
Comments let your users leave feedback and have discussions directly on email templates inside the editor. Comments are thread-based, can be anchored to specific blocks, and support resolving/unresolving for review workflows.
Find the Signing Key in your project settings on the Templatical dashboard. This key is used to sign user identity data. Store it securely on your backend alongside your Client ID and Client Secret.
Comments support threading — users can reply to any root comment to create a conversation thread. Replies are displayed inline below their parent comment.
Comments can be anchored to specific template blocks. When a comment is associated with a block, a comment indicator badge appears on that block in the editor. Clicking the badge opens the comments sidebar filtered to that block's comments.
Any user can resolve or unresolve a comment thread. Resolved comments are visually distinct and can be filtered out, making it easy to track which feedback has been addressed.
Users can only edit and delete their own comments. Ownership is verified server-side by matching the signed user identity against the comment's author. Any user can resolve or unresolve any comment.
Even if your plan supports commenting and your token endpoint returns user identity, you can disable commenting on demand by setting commenting: false in the SDK configuration:
When commenting is false, the Comments button will not appear in the toolbar regardless of plan or user configuration. Omitting the option or setting it to true (default) allows commenting based on plan availability and user identity.
Called whenever a comment action occurs. Use this callback to sync comment activity with your own systems — for example, to send notifications or log activity.
Commenting
Plan Feature
This feature is only available on Growth and Scale plans.
Comments let your users leave feedback and have discussions directly on email templates inside the editor. Comments are thread-based, can be anchored to specific blocks, and support resolving/unresolving for review workflows.
How It Works
onCommentcallback (if configured) whenever a comment action occursUser identity is verified with HMAC-SHA256 so it cannot be spoofed on the client side. Each user can only edit and delete their own comments.
Setup
1. Get Your Signing Key
Find the Signing Key in your project settings on the Templatical dashboard. This key is used to sign user identity data. Store it securely on your backend alongside your Client ID and Client Secret.
2. Update Your Token Endpoint
Your token endpoint already returns a token response (see Authentication). To enable commenting, add a
userobject to the response:user.idstringuser.namestringuser.signaturestringIf the
userobject is omitted, the Comments button will not appear in the toolbar.Computing the Signature
The signature algorithm is:
idstring (e.g."user_123") with your signing keyBackend Examples
Important
The
idvalue used for signing must match theuser.idvalue returned in the response. Ensure you use the same string representation in both places.Features
Thread-Based Comments
Comments support threading — users can reply to any root comment to create a conversation thread. Replies are displayed inline below their parent comment.
Block Anchoring
Comments can be anchored to specific template blocks. When a comment is associated with a block, a comment indicator badge appears on that block in the editor. Clicking the badge opens the comments sidebar filtered to that block's comments.
Resolving Comments
Any user can resolve or unresolve a comment thread. Resolved comments are visually distinct and can be filtered out, making it easy to track which feedback has been addressed.
Permissions
Users can only edit and delete their own comments. Ownership is verified server-side by matching the signed user identity against the comment's author. Any user can resolve or unresolve any comment.
Disabling Commenting
Even if your plan supports commenting and your token endpoint returns user identity, you can disable commenting on demand by setting
commenting: falsein the SDK configuration:When
commentingisfalse, the Comments button will not appear in the toolbar regardless of plan or user configuration. Omitting the option or setting it totrue(default) allows commenting based on plan availability and user identity.onComment
Called whenever a comment action occurs. Use this callback to sync comment activity with your own systems — for example, to send notifications or log activity.
The
eventobject contains:typestringcreated,updated,deleted,resolved,unresolvedcommentCommentComment Object
idstringtemplate_idstringblock_idstring | nullparent_idstring | nullbodystringauthor_identifierstringauthor_namestringresolved_atstring | nullresolved_by_identifierstring | nullresolved_by_namestring | nullcreated_atstringupdated_atstringrepliesComment[]