Skip to main content
What changed for the people who use Lekalao and for the applications that call it. The most recent first.
BillingContentCampaignsContactsAPISendingSecurity
Billing, gallery, interface; API, webhooks, test keys; security
  • Your plan, in sentences. The billing page says where the team stands and what comes next: the days of trial left, until when it is paid, what happens after. Paying during a trial loses no trial day, and moving to Free in the middle of a paid period asks first. See Your plan.
  • An invoice for every paid period. Numbered LKL-2026-000123 without a gap, printed or saved as a PDF, and announced by a receipt with a link that needs no account. Owners fill in the name, address, tax ID and language of their invoices. See Invoices.
  • Cards through Stripe. Mobile Money or a card through Wajub where Mobile Money reaches, a card through Stripe elsewhere; the page says which. See Paying.
  • The gallery. Five layouts and eight starter e-mails, already written in your brand and in the language of the list, offered when you create a template, a campaign or an automation e-mail. See The gallery.
  • Nothing typed is lost. A draft campaign saves itself, and every editor asks before you leave with changes. Changing the editor converts the content, or asks. See Saving and Change the editor.
  • Preview text. The line after the subject in the inbox, for campaigns, automation e-mails, transactional templates and templates. See Preview text.
  • One editor to begin with. A new campaign asks how you will write it, the block editor first, and a Two columns block joins the others. The drag-and-drop designer is off unless the installation switches it on. See The editors.
  • The right hour. A schedule is read in your time zone and shown with it; feeds and waits keep the zone they were set in. See Schedule.
  • A campaign that cannot leave says so. It is marked Blocked, with its reasons, and whoever scheduled it and the owners are told by e-mail. See Blocked.
  • Archive, select, sort. A sent campaign can be archived, several campaigns archived or deleted at once, and the main tables sorted by their columns. See Archive and delete.
  • Asked first. Deleting a segment says what hangs on it; unblocking an address says what is at stake, and a complaint needs the person’s renewed consent. See Delete a segment and Take an address off.
  • People. Contacts opens on everybody once, with the lists they are on; Lists and the Suppression list are its other tabs. See People.
  • Deliverability has its own entry in the main navigation, at /deliverability; the old address leads there. See Sending domains.
  • First steps for your team. The dashboard’s list counts your team, not the installation, leads to where each step is done, and can be put away. See Get Lekalao ready.
  • A report that ranks. Sent, opens, clicks and revenue (or delivered) in large, the rest on one line. A campaign that reached people opens on it. See Statistics.
  • Transactional webhooks. transactional.sent, .delivered, .bounced, .complained, .opened, .clicked and .failed follow each transactional e-mail: no more polling to know what became of it. See Webhooks.
  • Webhooks signed with their time, retried, deduplicable. Lekalao-Signature: t=…,v1=… signs the time with the body: refuse a call more than five minutes old. Lekalao-Event-Id is the same for every attempt. A failed call is tried again after 1 min, 5 min, 30 min, 2 h, 6 h and 12 h, and the log shows each attempt. An endpoint is switched off after 3 days of failures, and its owners are told. X-Lekalao-Signature is still sent, for now. See Check the signature.
  • Error codes. Every error of the API carries a stable code and a doc_url. See Errors.
  • Test keys. A token created as a test key sends nothing, and the addresses at sink.lekalao.dev play the provider, webhooks included. See Test keys.
  • One description of the API. GET /v1/openapi.json serves the document of this reference, in English or French; a test in the application holds it to the routes and to real answers.
  • Transactional e-mails answer whose fault it is. 422 recipients_suppressed, 429 monthly_quota_exceeded, 502 only when the provider or the queue failed, with failure_code, delivered_at, bounced_at and complained_at on the e-mail. An e-mail still pending seven hours after its call becomes failed, failure_code: lost. 50 addresses at most per e-mail, cc and bcc included, and each one counts against the allowance. mailer must be one of the team’s, or one the service provides. A resend keeps the sender address. See Transactional e-mails.
  • Campaign tests obey the rules. A test goes through the sender check and the suppression list, counts against the allowance, and is limited to 100 an hour per team: otherwise 422 test_refused. See Campaigns.
  • A second factor, everywhere. A team that requires two-factor authentication refuses the API tokens and the SMTP relay of a member who has not set one up. The relay closes a connection after three wrong passwords, and holds a limited number at once. See Authentication.
  • Double opt-in proves a person. The confirmation link opens a page; its button confirms. Security software that opens every link no longer confirms in the reader’s place. See Subscription confirmation.
  • Plans. A new team starts on the plan chosen on the public site (/register?plan=), and a second team on Free; a trial that ends unpaid goes back to Free within the hour. See Billing.
  • Amazon SES. The first SNS topic that confirms is pinned on the mailer; another one is not believed. See Provider feedback.
Sending
Mailers
  • SMTP encryption follows the port. On 465, 587 and 25, an encryption that cannot work there gives way to the port: 465 uses SSL/TLS, 587 and 25 use STARTTLS, and nothing is ever sent unencrypted. Providers that call 587 “TLS”, such as Zoho ZeptoMail, now work as set. See Mailers.
  • A changed mailer is used at once. New credentials or a new host apply from the next e-mail. The sending processes no longer keep the old ones until the next restart.
BillingTeam
Plans, prices and payments; team settings
  • Starter, a new entry plan: 2,000 subscribers and 20,000 e-mails a month. Free grows to 1,000 subscribers and 10,000 e-mails. See Plans.
  • Prices in your currency: XAF, XOF, NGN, KES, EUR or USD, settled by your first payment. Pay for 1, 3, 6 or 12 months; longer periods cost less. See Your currency.
  • Nothing renews by itself, and you are told. Reminders seven days before a paid period ends, the day before, and the morning it ends. See The reminders.
  • The postal address comes first. It is now among a new team’s first steps, before a campaign is written rather than when it is refused.
  • Inviting a member asks for the role, with Writer to begin with. See Invite a member.
  • On a shared installation, the public URL and the application’s name belong to whoever runs it: the fields are gone from Settings → General. Your team shows its own name through its brand.
  • The transactional log reads nested messages. E-mails relayed by software that wraps its parts twice (Mattermost does) show their text and HTML, not their raw source.
CampaignsAPISending
Campaigns, tokens, mailers
  • Each blocker says where it is settled. A campaign that cannot leave lists its problems with a link to the right page. Add the footer writes the unsubscribe link and the postal address into the content, and a new campaign starts with that footer. See Ready or not.
  • A new API token can be copied. It was not shown after its creation. See API tokens.
  • Confirmation and welcome e-mails leave through your mailer, the one chosen for transactional e-mails, instead of the installation’s own.
  • Mailer credentials are protected from browsers. Password managers no longer fill your sign-in into a provider’s fields, and Amazon SES keys are checked for their shape when saved.
  • The SMTP relay accepts an empty sender (MAIL FROM:<>), which some software, Mattermost among them, uses for its test e-mail. See SMTP relay.
TeamContactsAPI
Trust, pages, connectors
  • Activity log. Every change, sign-in and export is written down: who, what, from where, by the browser or by which token. Kept 400 days. See Activity.
  • Writing, sending and exporting are three rights. A new role, Writer, prepares campaigns without sending them. See The roles.
  • A second pair of eyes. A team can ask that a campaign be approved by another member before it leaves, whether by the button, the schedule or the API. See Rules of the team.
  • Two-factor authentication can be required of every member.
  • Landing pages. A page of its own for a list, at an address that does not move. See Landing pages.
  • Optional help. When the installation offers them, a real spam filter’s opinion in the check before sending, and suggestions for subjects and passages. See Checks and Help with the words.
  • API for connectors: GET /v1/me, webhooks managed by program, and a sample of each event. See Registering by program.
APIContactsContentDeliverability
Transactional e-mails, contacts, content, deliverability
  • Transactional e-mails are queued. The API answers 202 with status: pending as soon as the e-mail is logged, then sends it from a queue of its own, never behind a campaign. A failing provider is tried again for up to six hours, at its own rate limit. See The answer.
  • Imports no longer greet. Imported people get no welcome e-mail and start no automation, unless Welcome them as new subscribers is ticked (trigger_automations in the API). See Import and export.
  • One person, one contact. Someone on three lists has one name, one language and one set of fields. Plans count people, not subscriptions, and “forget me” forgets the person everywhere.
  • Typed contact fields: text, number, date, yes or no. Dates and numbers are stored in one shape, whatever the file wrote. See Contact fields.
  • What people do. Your shop reports events (an order, a basket left behind) with POST /v1/events. They start automations (The person does something), build segments and fill e-mails. See Events.
  • Templates in Liquid, with every standard filter and tag, and money for amounts written the reader’s way. See Personalisation.
  • A drag-and-drop designer, optional, beside the four editors. See Editors.
  • A sign-up page and a pop-up hosted by Lekalao, for a team with no form of its own. See Pages and pop-up.
  • Ready-made journeys: a welcome series, an abandoned basket, a birthday, a word after a purchase. See Automations.
  • Birthdays on the reader’s day, in their time zone, and on 28 February when the year has no 29th. See Triggers.
  • Addresses are checked on the way in. A throwaway mailbox or a domain with no mail server is refused, with the address that was very likely meant. See List hygiene.
  • Deliverability as a trade. Readers who stopped reading are left in peace, a new sender is warmed up over twelve days, DMARC policies and reports are read, and Sign with Lekalao signs what leaves through an SMTP relay. See Sending domains.
  • Each reader at their hour. With Send to each person at the hour they open, a campaign leaves at the hour each subscriber usually reads. See Each person’s hour.
  • Fairer figures. Machine opens and link scanners are told apart from people, and the content check names what spam filters punish.