FAQ
Questions, answered.
Everything people ask before and after they start sending: pricing, channels, the API and getting set up.
Topics
General
Who is SavaraFlow for?
Businesses that message customers in Uganda and East Africa by SMS, WhatsApp and email, from a workspace or from their own software.
Do I need a developer?
No. You can send, upload CSV lists, run campaigns and reply in the inbox from the workspace. The API is there when you want to send from your own system.
How long does setup take?
A sandbox simulation takes a minute. Live SMS needs a funded wallet. WhatsApp needs your business number connected and templates approved by Meta. Email needs a sender, and your own domain needs DNS records.
Do I need my own WhatsApp Business account?
Yes. You connect your Meta business number in the console, and SavaraFlow syncs your approved templates. Replies from customers land in the shared inbox.
Can I send SMS under my own business name?
Yes, in Uganda. Request a branded sender ID in the workspace and it is registered with the networks. Until it is approved, messages use the shared SavaraFlow sender.
What happens if my wallet runs out halfway through a batch?
It can’t. A batch reserves its full cost before anything is sent. If the balance is short, the whole batch is declined and nothing goes out.
Am I charged for messages that fail?
If a provider rejects a message before accepting it, the charge is refunded. Once a provider accepts a message, the attempt may remain billable even if delivery later fails. The console and API show the exact charge for each message.
Can I test without paying?
Yes. Sandbox keys and simulations never touch your wallet. You can try delivered, rejected and low-balance outcomes before you top up.
How do I prove customers agreed to be messaged?
Each contact records the channels they agreed to. API sends require consent: true, and fallback only uses channels with recorded consent.
Which payment methods can I top up with?
Mobile money through a hosted checkout that shows the amount in Ugandan shillings before you approve. Credit is added to your USD wallet once the payment is verified.
Is there a contract or monthly minimum?
No. Pay as you go from a prepaid wallet. An optional monthly platform plan is available if you want it.
Pricing and wallet
Is there a contract or minimum spend?
No. You pay as you go from a prepaid wallet. The monthly platform plan is optional.
Does testing cost anything?
No. Sandbox keys and workspace simulations never touch your wallet.
Why is this an estimate?
Provider rates vary by destination and route. The console shows a live quote using your workspace’s configured rate before each send.
Who pays Meta for WhatsApp?
Depending on your setup, your workspace pays Meta directly or SavaraFlow includes the provider estimate in the wallet quote.
Am I charged for messages that fail?
If a provider rejects a message before accepting it, the charge is refunded once. After a provider accepts a message, the attempt may remain billable even if delivery later fails.
Why did my SMS cost two segments?
SMS is billed per segment. Messages over 160 GSM-7 characters split into 153-character parts. An emoji or non-Latin character switches to UCS-2, with 70 characters per message and 67 per part.
Can I cap what a send costs?
Yes. Pass maxCostMicros with an API send or batch, and the request is refused if the quote is higher. Campaigns also have their own spending cap.
What currency is my wallet in?
US dollars. Mobile money top-ups show the amount in Ugandan shillings before you approve, and credit is added once the payment is verified.
What if a top-up doesn’t appear?
Only a verified payment adds credit. Pending top-ups are checked automatically, and owners can request a check from the wallet.
Channels and tools
SMS: Why did my message become two segments?
A single SMS holds 160 GSM-7 characters. Longer messages are split into parts of 153. One emoji or non-Latin character switches the whole message to UCS-2, which holds 70 characters per message and 67 per part.
Am I charged if an SMS fails?
If the provider rejects the message before accepting it, the charge is refunded. Once a provider has accepted it, the attempt can remain billable even if the carrier later reports a failure.
WhatsApp: Why do I need a template?
WhatsApp only lets businesses start a conversation with a template Meta has approved. Once the customer replies, your team can answer freely for 24 hours.
WhatsApp: Do templates update automatically?
Template status updates from Meta are received on the WhatsApp callback. You can also sync templates manually from the workspace.
Email: How long does domain approval take?
Once your DNS records are published, the operator checks the DKIM record and confirms signing on the relay. Allow time for DNS to propagate before the check.
Email: Does Sent mean it reached the inbox?
No. Sent means SavaraMail accepted the message. Inbox placement depends on the receiving provider, so test with a mailbox you control during rollout.
CSV bulk sending: What if my list has more than 250 people?
Split it into batches of 250, or use a campaign for larger audiences with a spending cap.
CSV bulk sending: Does my file get uploaded?
The file is read in your browser. Only the recipients you choose to send to are submitted with the batch.
Team inbox: Does Smart assist send messages on its own?
No. It suggests a draft, translation or triage label. An agent edits and sends every reply.
Team inbox: What does Smart assist use to write a draft?
A limited view of the current customer’s conversation and, if you add them, redacted answers your team has approved.
Campaigns: What happens when a campaign pauses?
Messages already sent stay sent. Top up or raise the cap, then resume to continue with the remaining contacts.
Campaigns: Can I send to people who haven’t opted in?
No. Campaigns only send to contacts with recorded consent for the chosen channel.
Automations: Will customers get the night-time reply every time they write?
No. The outside-hours trigger starts at most once per contact per local day.
Automations: Can I change a flow while it’s running?
Yes. Active runs keep using the version they started with. New runs use the updated flow after you activate it.
API and webhooks
What happens if my server retries a request?
Send the same Idempotency-Key and payload, and you get the original message back with 200 instead of a second send. A different payload with the same key returns 409.
Is there a rate limit?
Each workspace can make 60 API requests per minute. Over the limit you get 429 with Retry-After: 60.
How do I know a message was delivered?
Register an HTTPS webhook and verify each signed message.status event, or check the message status endpoint.
Still have a question?
Look up a term, or try it in the sandbox for free.