Help center

Help center

Task-level answers: what to configure, in what order, and which failures are silent. For the reasoning behind how the platform behaves, the guides go a level deeper.

Whaleal Cart

Installing the Shopify app, editing recovery emails, tuning send timing, and fixing a recovery that did not fire.

Whaleal Cart help center

Setup walkthrough, templates, plans, troubleshooting and the usual questions — all in one page.

Open the Cart help center →

Getting started

From an empty account to a message that actually left the building — and a plan that fits.

5 min

Getting started

Connect a provider, issue a key, send your first message — and meet the two defaults that quietly cost money if you miss them.

Read this article →
4 min

Plans, quotas and billing

What each tier includes, how a "channel" is counted, and why your SMS fees never appear on our invoice.

Read this article →

Channels and connections

You keep your own provider account. This is what that means in practice, and how to route across several.

5 min

Connect your own provider account

Bring-your-own-account keeps the agreement, the sender reputation and the invoice with your CPaaS provider. Here is how to connect one, and what changes once you do.

Read this article →
3 min

Sender numbers and how they are chosen

Most senders never specify a from address, and that is usually correct. Here is when to override it.

Read this article →
5 min

Route across providers with priority and weight

Bind a key to more than one provider and the platform becomes the routing layer — balancing load when all is well, failing over when it is not.

Read this article →
4 min

Verify a connection before you rely on it

The built-in check only validates the fields you typed. Here is the test that actually proves a connection works.

Read this article →

API and delivery

Programmatic sending, keys, statuses, receipts, rate limits and the message log.

3 min

Create, bind and rotate API keys

A key proves which tenant is calling and which channels it may use. It is shown in full once, and a key with no binding cannot send at all.

Read this article →
6 min

Send a message with the API

One endpoint accepts asynchronously. A success code means the platform took the message — not that a handset received it.

Read this article →
4 min

What each message status means

Four states, and one of them does not belong in the same bucket as the others. Reading suppressed as a failure sends you looking in the wrong place.

Read this article →
5 min

Receive delivery receipts

The platform POSTs to a URL you configure, with a token you generate. Two implementation details decide whether you lose events.

Read this article →
4 min

Rate limits and monthly usage

There are two counters, they are not the same number, and only one of them looks like a bill.

Read this article →
4 min

Find a message in the log

The log answers "what happened to this one message" — without storing anyone's content.

Read this article →
4 min

Rotate an API key without stopping sends

Replace a key in four steps so there is never a moment when nothing can send — and know what to do first if the key leaked.

Read this article →

Sending at scale

Lists, batches and scheduled sends — with pacing that protects your provider limits.

5 min

Bulk and scheduled sends

Send to a list once, or at a future time, with per-batch pacing that protects your provider limits.

Read this article →
3 min

Contacts and lists

Keep the people you message in one place, import them in bulk, and group them without duplicating anyone.

Read this article →
5 min

Estimate what a send will cost

Segments × destinations × sender type is the whole formula. Here is how to work it out before the invoice arrives.

Read this article →

Opt-out and data

What happens after a recipient replies STOP, and what the platform stores about your messages.

6 min

Opt-out and suppression

STOP, HELP and START are three different branches. Configuring only the receipt endpoint is the mistake that makes the whole chain fail silently.

Read this article →
3 min

What we store, and for how long

The platform keeps metadata about your messages, not their content. Here is exactly what that means for your own records.

Read this article →
4 min

Respond to a data request about a recipient

What the platform holds about a message, what it deliberately does not, and where the data subject relationship actually sits.

Read this article →

Troubleshooting

Diagnosing the cases where everything returns success and the message still does not arrive.

5 min

Messages are accepted but not arriving

Every call returns success. Work through this in order — the first four checks do not involve the carrier at all.

Read this article →
5 min

Messages that fail with an error code

A failed status always carries a reason. The first question is which layer wrote it — the platform or the provider.

Read this article →
3 min

A recipient received the same message twice

Almost always this is a client-side timeout followed by a resend. Here is how to confirm it, and how to stop it happening.

Read this article →
5 min

A provider stopped accepting traffic

Telling an account-level failure apart from a bad route, and what failover can and cannot absorb for you.

Read this article →
Scope. Most articles here walk the SMS channel end to end. Email and WhatsApp connect the same way — you link your own provider account and send from the console: 6 providers on SMS, 4 on email and 3 on WhatsApp. Scheduled and bulk sending run on the SMS channel only, and a provider we do not list yet is registered as a request from the console rather than offered as a connection.

Still stuck

If a message was accepted and you cannot tell where it went, start with the troubleshooting article — it rules out whole layers before you contact the carrier.