DOCUMENTATION
Lettrove is API-first. Everything the app does — authoring templates, sending, managing your team — runs through a versioned HTTP API scoped to your organization. Connect your own tools, listen to events, and (soon) drive the editor from your own platform.
Claude, Cursor and any other MCP client can work in Lettrove as you: list, read, create and edit emails, describe an audience, send a test, send to a list now or on a schedule, and read how a send went. Standard OAuth — you sign in once and allow it.
Read the MCP connection guideRequests are authenticated with your session and scoped to an active organization. Every action is checked against your role (owner, admin, editor, viewer) and recorded in an immutable audit log. Machine-to-machine API keys are on the roadmap.
Prefer to react to what happens in Lettrove from your own platform? Add a Webhooks connection with your endpoint URL and a signing secret; we'll deliver HMAC-signed, idempotent event payloads you can verify and replay. The full event vocabulary is the same one that powers the in-app Activity log:
user.signed_upuser.signed_inuser.sign_in_faileduser.signed_outuser.password_changeduser.password_reset_requesteduser.email_verifieduser.deleteduser.blockeduser.unblockedsession.revokedorg.createdorg.updatedorg.deletedorg.ownership_transferredmember.invitedmember.invite_revokedmember.invite_acceptedmember.removedmember.leftmember.role_changedtemplate.createdtemplate.updatedtemplate.deletedtemplate.publishedasset.uploadedasset.updatedasset.deletedimage.generatedquota.updateddocument.createddocument.deleteddocument.restoreddocument.duplicateddocument.revertedfolder.createdfolder.updatedfolder.deletedbrand.createdbrand.updatedbrand.deletedbrand_folder.createdbrand_folder.updatedbrand_folder.deletedbrand_part.createdbrand_part.updatedbrand_part.deletedsend.testsend.campaignconnection.createdconnection.updatedconnection.deletedsource.configuredsource.sync_requestedsource.syncedsource.purgedsource.interestsending.domain.createdsending.domain.verifiedsending.domain.removedsending.sender.createdsending.sender.removedsending.key.createdsending.key.rotatedsending.key.revokedcampaign.createdcampaign.finishedcontact.unsubscribedcontact.suppressedcampaign.scheduledcampaign.cancelledlist_import.uploadedlist_import.startedlist_field.updatedlist.createdlist.updatedlist_field.addedlist_field.removedlist_records.addedlist_record.updatedlist_record.removedlist_records.restoredlist_records.purgedplatform_admin.invitedplatform_admin.grantedplatform_admin.revokedissue.healedissue.acknowledgedissue.resolvedsending.pausedsending.resumedhealing.pausedhealing.resumedfeature.updatedembed.project.createdembed.project.updatedembed.project.deletedembed.project.restoredembed.project.branding_updatedembed.project.erasedembed.end_user.erasedembed.end_user.erase_requestedembed.webhook.createdembed.webhook.updatedembed.webhook.secret_rotatedembed.webhook.deletedembed.key.createdembed.key.revokedembed.origin.addedembed.origin.removedembed.config.updatedembed.workspace_suspendedembed.workspace_resumedembed.brand.createdembed.brand.updatedembed.brand.deletedembed.brand_folder.createdembed.brand_folder.updatedembed.brand_folder.deletedembed.brand_part.createdembed.brand_part.updatedembed.brand_part.deletedembed.brand_image.uploadedcredits.grantedcredits.allowance_updatedcredits.workspace_movedConnect the tools you already use by authorising Lettrove on their site — no API keys to copy. Bring an audience in from your CRM, and send from your own domain (Settings → Sending) with delivery reported back.
HubSpot: setup guide and what the app can access