Lettr, worked by an AI employee
Not another app for your team to learn, and not a set of rules for you to build. You hire an AI employee, you give it access to your Lettr account, and you ask it for things in Slack or Teams the way you would ask anyone else on the team. There is nothing to map and nothing to maintain.
- Transactional Email
- Connects with a key
- 60 ready-made tools
- Asked in Slack or Teams
An illustration of how the conversation reads, not a transcript from a client account.
What Lettr is
Lettr is an email and messaging platform for transactional delivery, templates, audiences, campaigns, domains, and webhooks.
You paste in a key from your own Lettr account. It is kept encrypted, and you can withdraw it from inside Lettr whenever you like.
One message in, the work done in Lettr.
- 01
You ask
You message your AI employee in the chat your team already has open, in one sentence, in your own words.
- 02
It works out the step
It decides what the job needs in Lettr. You do not pick anything from a menu or wire anything together.
- 03
It does the work
Signed in to your own Lettr account, inside the access you granted it, doing the thing you asked for.
- 04
It reports back
It tells you what it did, in the same thread. If it could not do something, it says so rather than guessing.
What it can do in Lettr
These are the ready-made tools your AI employee already has in Lettr. It is not limited to them, but it never has to be taught these.
- Attach Contacts to ListsAttach every combination of 1-1000 contacts and 1-50 audience lists, processing up to 50,000 contact-list pairs and reporting new and existing memberships.
- Bulk Create Audience ContactsCreate or recognize up to 1000 normalized, deduplicated contacts. Shared properties affect only newly created contacts; listid applies to all contacts, including those that already
- Cancel Scheduled EmailCancel a scheduled email before its delivery time; cancellation is unavailable once processing has begun.
- Create Audience ContactCreate one audience contact with optional properties and list membership.
- Create Audience Contact With Double Opt-InCreate an unverified audience contact and irreversibly send an external confirmation email; the contact becomes subscribed only after confirming.
- Create Audience ListCreate a uniquely named audience list for grouping contacts.
- Create Audience PropertyDefine a custom contact property with an immutable name and value type. Changing either later requires deleting and recreating the property.
- Create Audience SegmentCreate a dynamic audience segment whose condition groups are ANDed while conditions inside each group are ORed.
- Create Audience TopicCreate a public or private subscription topic with an immutable opt-in or opt-out default.
- Create DomainRegister a sending domain and return the DNS configuration needed to verify it.
- Create TemplateCreate and publish an email template from either custom HTML or Topol editor JSON, extracting its merge tags.
- Create WebhookCreate an active event webhook using no authentication, HTTP Basic credentials, or OAuth 2 client credentials.
- Delete Audience ContactPermanently delete one audience contact and its associated memberships.
- Delete Audience ListsPermanently delete between 1 and 50 audience lists in one request.
- Delete Audience PropertyPermanently delete a custom contact-property definition.
- Delete Audience SegmentPermanently delete one dynamic audience segment.
- Delete Audience TopicPermanently delete one audience subscription topic.
- Delete DomainPermanently remove a sending domain from Lettr and SparkPost so it can no longer send email.
- Delete TemplatePermanently delete an email template and all of its versions.
- Delete WebhookPermanently remove a webhook so Lettr stops delivering events to it.
- Detach Contacts from ListsDetach every combination of 1-1000 contacts and 1-50 audience lists, reporting removed and absent memberships.
- Get Audience ContactRetrieve one contact's email, status, custom properties, list memberships, and topic subscriptions by ID.
- Get Audience ListRetrieve one audience list and its current contact count by ID.
- Get Audience PropertyRetrieve one custom contact-property definition and its fallback value.
- Get Audience SegmentRetrieve one dynamic segment's list restriction, complete AND-of-OR condition definition, and cached contact count.
- Get Audience TopicRetrieve one subscription topic's defaults, visibility, and current contact count.
- Get CampaignRetrieve one campaign's name, subject, sender and reply-to configuration, schedule, rendered HTML, lifecycle state, recipient counts, and engagement statistics. The campaign's audi
- Get DomainRetrieve one sending domain's send readiness, DNS records, provider detection, and verification status.
- Get EmailRetrieve a sent email's delivery state, recipients, schedule metadata, and events by request ID. The configurable event date range defaults to the last 10 days, not the email's com
- Get Scheduled EmailRetrieve a scheduled email's current state and events by transmission ID, including after it has been processed.
- Get TemplateRetrieve an email template's metadata, active HTML or editor JSON content, and version counts by slug.
- Get Template Merge TagsReturn required and optional merge tags for a template's active or specified version before sending with substitution data.
- Get WebhookRetrieve one webhook's target, enabled state, event selection, authentication mode, and latest delivery status.
- List Audience ContactsReturn one cursor-controlled page of contacts, optionally filtered by search text, status, list, or segment.
- List Audience ListsReturn one cursor-controlled page of audience lists with each list's contact count.
- List Audience PropertiesReturn one cursor-controlled page of custom contact-property definitions and fallback values.
- List Audience SegmentsReturn one cursor-controlled page of dynamic audience segments, including their complete AND-of-OR condition definitions, optionally filtered by list.
- List Audience TopicsReturn one cursor-controlled page of subscription topics with defaults, visibility, and contact counts.
- List Campaign EventsReturn one cursor-controlled page of a campaign's delivery and engagement events, with event, recipient, and time filters. An empty items page can still have a nextcursor; continue
- List CampaignsReturn one cursor-controlled page of campaigns with complete delivery and engagement statistics, optionally filtered by lifecycle status.
- List DomainsReturn all sending domains with approval, DNS verification, and send-readiness status.
- List Email EventsReturn one cursor-controlled page of delivery and engagement events across sent emails, with event, recipient, transmission, bounce, and date filters.
- List ProjectsReturn one cursor-controlled page of Lettr projects and their IDs for use with template operations.
- List Sent EmailsReturn one cursor-controlled page of sent emails, optionally filtered by recipient and date range.
- List TemplatesReturn one cursor-controlled page of email templates for a project or the team's default project.
- List WebhooksReturn all event webhooks with target, enabled state, event selection, authentication mode, and latest delivery status.
- Publish Template VersionCreate and activate a new version of an existing email template from exactly one of HTML or Topol editor JSON, optionally renaming the template atomically.
- Schedule CampaignSchedule a campaign for future delivery or reschedule it. The campaign dispatches automatically at that time unless it is unscheduled first.
- Schedule EmailCreate a transactional email scheduled 5 minutes to 3 days in the future; it remains cancellable until processed.
- Send CampaignImmediately and irreversibly start sending a sendable draft campaign to its resolved audience. Only call after confirming the campaign's audience, subject, sender email, and conten
- Send EmailImmediately queue a transactional email to up to 50 recipients using inline content or a Lettr template. This is an irreversible external send.
- Unschedule CampaignCancel a scheduled campaign send and return the campaign to draft. The campaign must still be scheduled; this cannot stop one already preparing or sending.
- Update Audience ContactChange a contact's email, subscribed or unsubscribed status, or selected custom property values. Provide at least one of email, status, or properties; a null value inside propertie
- Update Audience ListRename an audience list while preserving its contacts.
- Update Audience PropertySet or clear a custom contact property's fallback value. Its name and data type cannot be changed.
- Update Audience SegmentChange a dynamic segment's name, optional audience-list restriction, or complete AND-of-OR condition definition. Provide at least one of these mutable fields; setting listid to nul
- Update Audience TopicChange a subscription topic's name, description, or public/private visibility. Provide at least one of these mutable fields; setting description to null clears it. Its default subs
- Update TemplateRename an email template's metadata without publishing a new version.
- Update WebhookPartially update a webhook's name, callback URL, authentication, selected events, or active state. Provide at least one field to update.
- Verify DomainRun Lettr's DNS verification for a registered domain and return DKIM, CNAME, DMARC, SPF, and ownership results.
You stay the boss of your Lettr account.
Nothing connects until you approve it. You grant access one app at a time, you can take it back the same way, and everything your AI employee does in there is written down where you can see it.
How we handle your data- It signs in to your own Lettr account. You are not moving anything into ours.
- You grant access one app at a time, and you can take it back the same way.
- Everything it does in Lettr is written down, with what it did and when.
- Anything you tell it to check with you first, it checks with you first.
It works in Lettr and the rest of your software in the same job
A real job rarely stays in one place. Reading a message in one app, checking a record in another and writing the result in a third is one request to your AI employee, not three.
Questions people ask about Lettr
- Can an AI employee really work inside Lettr?
- Yes. It signs in to your own Lettr account and works in it the way a new hire would, from the chat your team already has open. Nobody installs anything, and nobody learns a new screen.
- Do I have to move anything out of Lettr?
- No. Nothing moves and nothing is replaced. Your records stay in Lettr, your team carries on in the same screens they used yesterday, and your AI employee works alongside them in there.
- How does it get into my Lettr account?
- You paste in a key from your own Lettr account. It is kept encrypted, and you can withdraw it from inside Lettr whenever you like. You approve it before anything connects, and you can take the access back the same way you gave it.
- What can it actually do in Lettr?
- It has 60 ready-made tools in Lettr today, among them Attach Contacts to Lists, Bulk Create Audience Contacts and Cancel Scheduled Email. The full list is on this page. It is not limited to those, but it never has to be taught them.
- Can it use Lettr and the rest of my software in the same job?
- Yes, and that is usually the point. Reading a message in one app, checking a record in Lettr and writing the result somewhere else is one request to your AI employee, not three separate ones you stitch together.
- Who decides what it is allowed to do in Lettr?
- You do. You grant access one app at a time and can withdraw it at any time, anything you ask it to check with you first it checks with you first, and everything it does in Lettr is written down with what it did and when.