Skip to content

Add webhook for Lettermint#544

Open
thasmo wants to merge 1 commit intoputyourlightson:developfrom
thasmo:feat/lettermint-webhook
Open

Add webhook for Lettermint#544
thasmo wants to merge 1 commit intoputyourlightson:developfrom
thasmo:feat/lettermint-webhook

Conversation

@thasmo
Copy link

@thasmo thasmo commented Jan 2, 2026

This PR adds a webhook integration for Lettermint, a transactional email provider. A mailer adapter for Craft CMS is already available in the plugin store.

  • webhook endpoint at /actions/campaign/webhook/lettermint that handles Lettermint events
  • Supports hard bounces and spam complaints - marks contacts accordingly
  • Webhook signature validation using HMAC SHA-256 (follows their signing docs)
  • New lettermintWebhookSigningSecret setting for the signing secret (supports environment variables)
  • Webhook URL now shows up in the settings page
  • Includes tests for both signed and unsigned requests

The webhook listens for these events:

  • webhook.test
  • message.hard_bounced
  • message.spam_complaint

Signature validation is optional (controlled by the existing validateWebhookRequests setting) and uses the same security approach as the other webhook integrations.

@bencroker
Copy link
Collaborator

Thanks for the PR. I’ll need at least a description before I can take this seriously.

@thasmo
Copy link
Author

thasmo commented Jan 6, 2026

Thanks for the PR. I’ll need at least a description before I can take this seriously.

Absolutely, I will add a description ASAP.

@thasmo
Copy link
Author

thasmo commented Jan 6, 2026

@bencroker, I've added a PR description.

@thasmo
Copy link
Author

thasmo commented Feb 11, 2026

@bencroker, is this something you would consider merging? Thanks! 🙂

@bencroker
Copy link
Collaborator

@thasmo I had a close look at your PR in detail, which is well put together, and reviewed Lettermint’s website, which appears credible. That said, the mailer adapter you mentioned currently shows only three active installs. Given such low usage, prioritising webhook support for it over of any number of other delivery services, doesn’t seem warranted at this time.

You can of course use the logic in your PR to achieve the same result using a custom module/plugin, which is what I typically suggest people using unsupported webhooks do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants