Comments
Collaboration & historyComments
Leave threaded feedback on a design, anchored to a block.
Reviewers add comments tied to a specific block, reply in threads, and resolve them. Open the block's settings and use the Comments section. Type @ and the start of a name to mention a teammate; in the dashboard they get an email. Comments are part of collaboration. Whether a design is ready to send is a separate step, see review and approval.
In the dashboard
Comments on an email are saved with it, so everyone on the team sees the same threads. A view-only member can read them but not write. The person who wrote a comment can delete it, and so can an owner or an admin. Resolved threads fold away under "Show resolved". A design keeps at most 500 comment threads and 200 replies per thread, and each comment is up to 2,000 characters. Deleting a design deletes its comments, and every comment, resolve and delete is written to the audit log.
In your own app
Without a server the editor keeps comments in the browser. To keep them on your own server, give it a comments adapter in the config. The adapter holds the signed-in person and five functions; the editor shows a comment at once and takes it back, with your error message, when a call fails.
<EmailEditor
config={{
comments: {
key: design.id, // load again when another design opens
user: { id: me.id, name: me.name },
members: team, // [{ name, email }], for @ suggestions
canWrite: me.role !== "viewer",
canModerate: me.role === "owner" || me.role === "admin",
load: () => api.listComments(design.id),
create: ({ block_id, text }) => api.addComment(design.id, { block_id, text }),
reply: (commentId, text) => api.reply(design.id, commentId, text),
resolve: (commentId, resolved) => api.resolve(design.id, commentId, resolved),
remove: (commentId) => api.remove(design.id, commentId)
}
}}
/>Each function returns the saved record in snake_case: { id, block_id, author_id, author_name, text, mentions, resolved, resolved_by, replies, created_at }. The dashboard API serves exactly this under /{org}/designs/:id/comments (it signs in with a user session and is not part of the /v3 server-key API). Emails for mentions are sent by that dashboard API only; with your own adapter, sending any notice is up to your server.