Proofloop Documentation · v1.0.0

Email, SMS & WhatsApp

Proofloop sends through your own provider account. Nothing routes through our servers, there is nothing we can switch off, and you pay your provider directly at their rates.

Why bring your own provider

A review-request tool that sends through the vendor’s shared infrastructure inherits the vendor’s sender reputation — including whatever the vendor’s other customers did last week. It also gives the vendor a switch. Proofloop has neither: your provider, your domain, your reputation.

Choosing an email provider

ProviderGood forWhat you need
SMTPAnything, including your host’s own mail serverHost, port, username, password, encryption
MailgunVolume, EU data residencyAPI key, sending domain, region
PostmarkBest-in-class deliverability for transactional mailServer API token, verified sender signature
ResendQuick setup, modern dashboardAPI key, verified domain
Amazon SESLowest cost at scaleAccess key, secret, region — and production access, see below
Amazon SES starts in a sandbox

A new SES account can only send to addresses you have verified yourself. You have to request production access from the AWS console before it will send to customers. It is usually granted within a day, but do not discover it on the morning of your first campaign.

Getting past spam filters

This section matters more than which provider you pick. An email that lands in spam is worse than one you never sent: it trains the recipient’s mail server to distrust your domain.

1. Send from your own domain

Not from gmail.com, yahoo.com or any other free provider. Since February 2024 both Gmail and Yahoo reject bulk mail that claims to be from their own domains, and “bulk” is defined low enough that a modest campaign qualifies.

2. Publish SPF, DKIM and DMARC

Your provider gives you the exact DNS records; add them wherever your domain’s DNS is hosted. Proofloop’s deliverability wizard (Settings → Sending → Check domain) then looks each one up and tells you which are missing, so you are not reading raw DNS output.

RecordWhat it doesTypical value
SPFLists the servers allowed to send as your domainv=spf1 include:provider.example ~all
DKIMCryptographically signs each messageA TXT record at a selector your provider names
DMARCTells receivers what to do when the first two fail, and where to send reportsv=DMARC1; p=none; rua=mailto:you@yourdomain.com

Start DMARC at p=none, read the reports for a fortnight, then move to p=quarantine. Going straight to p=reject is how people discover their invoicing system was also sending as that domain.

3. Send a real test before you send a campaign

Proofloop will not run a campaign until a test send has genuinely arrived. This is deliberate, and it is not a formality you can turn off: a first campaign from an unverified domain burns the list and the domain reputation in one go.

SMS and WhatsApp with Twilio

  1. Create a Twilio account and buy a number capable of SMS in the countries you send to.
  2. From the Twilio console dashboard copy your Account SID and Auth Token.
  3. In Proofloop open Settings → Sending → Twilio, paste both, and choose the sending number. The token is encrypted before it is stored and is never shown again in full.
  4. Send a test message to your own phone. As with email, campaigns stay locked until one arrives.

WhatsApp needs approved templates

WhatsApp does not allow free-form messages to someone who has not messaged you in the last 24 hours, which is every review request. You must therefore use a template that Meta has approved, and approval takes anywhere from minutes to a couple of days.

  1. In the Twilio console, open Messaging → Content Template Builder.
  2. Create a template in the utility category. Review requests are transactional, not marketing, and mis-categorising them is the most common rejection reason.
  3. Put your variables in as {{1}}, {{2}} and so on.
  4. Once approved, paste the template SID into Proofloop and map each variable to a Proofloop field.

Country rules worth knowing

Quiet hours, throttling and cost

Proofloop will not send between 21:00 and 08:00 in the recipient’s local time, worked out from their country. A review request at 3am does not get answered; it gets you reported. The window is configurable per organisation.

Sending is throttled per hour and per day, both configurable. This protects your sender reputation from a mis-clicked campaign more than it protects anything else.

About the cost estimator

The per-message costs Proofloop shows are estimates for planning, not a bill. Real SMS pricing varies by country, by carrier, and by your own Twilio volume tier. Always check your provider invoice for the authoritative number.

Delivery status

Each provider can call Proofloop back when a message is delivered, bounces, or is marked as spam. Add these URLs in your provider dashboard and the send log stops guessing.

Mailgun    https://yourdomain.com/webhooks/mailgun
Postmark   https://yourdomain.com/webhooks/postmark
Resend     https://yourdomain.com/webhooks/resend
Amazon SES https://yourdomain.com/webhooks/ses     (via an SNS topic)
Twilio     https://yourdomain.com/webhooks/twilio

Every one of these verifies the provider’s signature before it changes anything. A hard bounce or a spam complaint adds the recipient to the suppression list permanently.