Raise your customer satisfactionby automating message deliveryover WhatsApp with Joinotify
Order confirmation, tracking code, payment, reminder: every event in your store becomes a WhatsApp message. All through the official API, with no ban anxiety and without writing a line of code.
- 7-day trial
- Cancel anytime
- First send in 5 minutes
Use the official API and keep WhatsApp on the phone.
In coexistence mode, the same number answers manually through the app and fires automations through the API. There is no choosing between one and the other, and few providers can offer that.
# the number stays on the team's phone
# and answers through the API at the same time
curl -X POST \
https://api.joinotify.com/v1/{PHONE_NUMBER_ID}/messages \
-H "Authorization: Bearer sk_live_a91c4f2e..." \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "5511999990000",
"type": "template",
"template": {
"name": "pedido_confirmado",
"language": { "code": "pt_BR" }
}
}'Manual support stays the same
Your team keeps replying from the phone app, exactly as they always have.
Automation runs in parallel
Notifications, confirmations and automated flows go out through the API — on the same number.
One shared history
Both ends live in the same conversation. No split contacts, no duplicates.
All of this is what Meta requires before the first send. None of it is on you.
This is the road for whoever goes straight to Meta: each step is a different queue, in a different panel, with its own timeline — and a mistake in any of them sends you back to the start.
With Joinotify, you go through none of these steps.
We are a Meta-approved Tech Provider. Business verification, App Review and the webhook infrastructure are already done on our side — you connect the number and send the first message in minutes.
- 01already handled
Verified Business Manager
Create the account in Meta Business Manager, link a domain of your own and go through business verification.
days to weeks in the queue - 02already handled
Verified company
Submit incorporation documents, tax registration, proof of address and legal details for Meta’s manual review.
can be refused with no explanation - 03already handled
Advanced permissions
Request whatsapp_business_messaging and whatsapp_business_management in App Review, with a video, screenshots and a use-case description.
up to 5 business days of review - 04already handled
Tech Provider certification
Keeping WhatsApp Business on the phone alongside the API (coexistence) requires being an approved Tech Provider — company verification, product demo and manual approval.
closed program · few approved - 05already handled
Webhooks and infrastructure
Stand up an HTTPS endpoint with a verification token, validate the signature of every Graph API payload and keep it all up.
the infra is yours - 06already handled
App published and reviewed
The app has to leave development mode and be reviewed before it accepts any real number.
one more review cycle
We are already the approved partner.
The certification, the App Review and the webhook infrastructure stayed on our side. What is left on yours is what matters: connect the number and integrate.
Connect my numberGuided connection in minutes
Embedded Signup opens inside the Joinotify panel. You authorize the account in a few clicks, without opening a single Meta screen.
Every endpoint unlocked
Text, media, templates, interactive, location, reactions. The entire official API available from the first minute.
Webhooks ready to use
Register your system’s URL and receive messages and delivery statuses in real time. Nothing to configure on Meta.
No App Review, no waiting
The permissions are already approved on our side. You submit nothing, record no video and wait for no review.
Build automations by dragging and dropping components
Put workflows together intuitively and notify your leads or customers in a handful of steps.
- No code
- No complexity
- Just automation
This action fires when an order status changes.
Delay · 10 minutes
Order paid: Is equal to Yes
TrueFalseHi, {{ wc_billing_first_name }}! We got your order #{{ wc_order_number }}. 😊 Items: {{ wc_purchased_items }} Total: {{ wc_currency_symbol }} {{ wc_order_total }} We are already packing it.
Hi, {{ wc_billing_first_name }}, we got your order #{{ wc_order_number }} but it is still awaiting payment. To finish it, go to: {{ wc_payment_url }}
Visual flow builder
Drag the trigger, connect the actions and save. A paid order becomes a message without anyone writing code.
Conditions and branches
The flow splits by order status, total amount, product purchased or any data the trigger delivers.
Delays and scheduling
Wait seven days after delivery to ask for a review, or fire at a fixed date and time — no external cron.
100% compatible with Meta’s Cloud API.
Joinotify mirrors the official API. Only the URL prefix and the token change: the request body and the response are identical, so you can learn from Meta’s own documentation.
curl -X POST \
https://graph.facebook.com/v21.0/{PHONE_NUMBER_ID}/messages \
-H "Authorization: Bearer {META_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "5511999999999",
"type": "text",
"text": { "body": "Hi! Your order has been confirmed." }
}'curl -X POST \
https://api.joinotify.com/v1/{PHONE_NUMBER_ID}/messages \
-H "Authorization: Bearer sk_live_a91c4f2e..." \
-H "Content-Type: application/json" \
-d '{
"messaging_product": "whatsapp",
"to": "5511999999999",
"type": "text",
"text": { "body": "Hi! Your order has been confirmed." }
}'- The domain changes
- The token changes
- Everything else stays the same
Don’t want to assemble Meta’s JSON? One endpoint does it.
POST /messages covers text and templates with the type in the body, and the sender number comes from the token itself. The mirror stays there for everything else.
curl -X POST \
https://api.joinotify.com/messages \
-H "Authorization: Bearer sk_live_a91c4f2e..." \
-H "Content-Type: application/json" \
-d '{
"type": "text",
"to": "5511999999999",
"body": "Hi! Your order has been confirmed.",
"delaySeconds": 7200
}'Scheduling with cancellation
Send now or book for later, with `sendAt` or `delaySeconds`. Whatever is queued can be listed and cancelled up to seconds before it leaves.
Keys restricted per number
One key per integration — and, if you want, pinned to a single number. It is what lets an agency host clients on the same account without one reaching another.
Billing alerts over webhooks
Your integration receives `billing.past_due`, `billing.blocked` and `billing.restored`, and knows sending stopped before the customer complains.
Supported message types
- Text
- Image
- Video
- Audio
- Document
- Template (HSM)
- Buttons
- Interactive list
- Contact
- Location
- Reaction
- Sticker
The API is where it starts. The conversation happens here.
Connecting your number gives you more than an address to call. It comes with the panel where the conversation actually happens: a shared inbox, a contact base, audience segments, campaigns and automations — nothing to install, not a line of code to write.
- Inbox
- Contacts
- Audiences
- Campaigns
- Flows
- Marina Alves2 min ago
Can you send me the invoice again?
- Rafael Lima18 min ago
Got the link, thank you!
- Bruna Teixeira1 h ago
What is the delivery time to Curitiba?
You took this one
Automations paused while you answer
The whole team answering from one place
Conversations from your numbers land in a shared inbox, with folders, an owner and the full history. Whoever opens a conversation takes it over: automations stop replying while a person is there.
- Folders by state: open, yours, unassigned, waiting and snoozed
- The 24-hour window is right there, and the template takes over when it closes
- Automations pause on their own when someone takes the conversation
- Tags, owner and search by name, email or phone
Contacts
Your account's people: whoever wrote to you, whoever you imported and whoever came in through the API — with tags, custom fields and recorded consent.
- Spreadsheet import, checked before anything is saved
- Fields and tags you create yourself
- Consent and opt-out stored along with where they came from
2,480 contacts- Marina Alvescustomer · CuritibaMarketing opt-in
- Rafael Limalead · São PauloNo consent
- Bruna Teixeiracustomer · vipMarketing opt-in
Audiences
Segments of your base built from conditions: tag, field, consent, engagement. The count updates as you build it, separating who can receive marketing from who cannot.
- Conditions combined with “all” or “any”
- Live count, with a sample of the contacts
- The same audience serves as many campaigns as you want
Active customers in CuritibaContacts matching all- Tag is customer
- City is Curitiba
- Bought in the last 90 days
1,284reachable in a marketing campaign
Campaigns
One approved template to a whole audience, at the pace the number can take — and a record of what happened to every single message.
- Scheduling and sending window
- Pauses on its own if the number's quality drops
- Delivered, read and failed, message by message
Back in stock · VIP listSending1,042 of 1,284- 1,042Delivered
- 734Read
- 3Failed
Flows
Automations that answer on their own: a keyword, a campaign button, a tag — and the flow walks each person through it. In the panel, without WordPress, on any connected number.
- Triggers for keyword, template button, first message and click-to-WhatsApp ad
- Steps for text, media, buttons, list, question, wait and condition
- Published by version: whoever enters now follows the published one
Support menu- TriggerKeyword: quote
- TextHi! I can help you with that.
- ButtonsTalk to someone · See plans
- Wait for replyUp to 24 hours
Many clients, one account — and nothing gets mixed up
If you run WhatsApp for several clients, each one gets its own workspace: one client's numbers, contacts, conversations, campaigns, flows and integrations never show up in another's. All on a single subscription, with one workspace for each WhatsApp number your plan allows.
How it works
- Create the client's workspaceOne click on your account's Workspaces screen. No new subscription, no new sign-up.
- Connect their WhatsApp inside itSend the client the connection invite or connect it yourself: the number lands in the right space from the start.
- Bring in who will answerGive your team access client by client, or invite the client's own people.
- Follow everything from your accountUsage, alerts and contacts of every client, without opening each one.
Each client in its own space
Contacts, conversations, tags, audiences, opt-outs, API keys and webhooks stay apart. A client never sees anything of another.
Switch clients in one click
Your team moves between clients without leaving the account, with each one's unread conversations in sight.
The client only sees their own
The client's people see only their workspace, knowing your agency runs the account.
One invoice, usage per client
Each client's numbers, contacts and messages in the month, so you pass the cost on to whoever used it.
Notices with the client's name
Number quality, refused templates and campaigns arrive with the client in the subject. Silence the ones someone else looks after.
Already mixing clients? Split them
Move each client's WhatsApp into their workspace with the conversation history, and hand over contacts, keys and flows.
From the plan to the first message, in four steps.
The first two steps are the same for everyone: pick the plan and connect the number. The road only forks at the end: with the plugin you never see an API key; through code you never open WordPress.
Create the account and pick a plan
Create the account, confirm your WhatsApp and connect your number: the 7-day trial starts without a card. Whenever you are ready, add the card at checkout — it shows the recommended plan and the monthly and annual price, and only charges when the trial ends.
- 7 days free, cancel anytime
- An email before the first charge
Connect your WhatsApp number
In the panel, Embedded Signup opens in a window from Facebook itself. Pick a new number or migrate the one you already use, authorize, and come back with the account connected.
- No verified Business Manager
- No App Review, no documents to submit
- The number can stay on the phone, if you want it to
Through the WordPress plugin
You never see an API key.
Install the plugin and connect
The plugin is free and open source — install it from the WordPress directory. A wizard opens on its own: click Connect, authorize in the panel, and your numbers come back imported.
- No key to copy and paste
- Verified name, quality and conversation limit come along
Build the first flow
Drag the trigger — “order completed”, say —, write the message and save. The next WooCommerce order fires on its own.
- Conditions, delays and loops in the same builder
- Send history with filters
Through code, over the API
You never open WordPress.
Generate an API key
One key per integration, revocable on its own. It can be restricted to specific numbers — useful when the same account serves several clients.
your API keysk_live_a91c4f2e_h3d7p0qx_2qLm9eR8Send the first message
One endpoint for the common case, with the sender number coming from the token itself. Need an image, buttons or a carousel? The `/v1` mirror accepts the whole Cloud API payload, with the same key.
POST api.joinotify.com/messagescurl -X POST https://api.joinotify.com/messages \ -H 'Authorization: Bearer sk_live_xxx' \ -H 'Content-Type: application/json' \ -d '{ "type": "text", "to": "5541987111527", "body": "Your order #1042 is out for delivery." }'
POST with a JSON body. Your URL must answer 200 within 20s, and HTTPS is required.
messagesIncoming messages and delivery statusessmb_message_echoesMessages sent from the WhatsApp Business appmessage_template_status_updateTemplate approval or rejectionaccount_alertsAccount alerts: quality, approvals and blocksphone_number_quality_updateUpdates to the number’s quality
Receive every event in real time, wherever you want.
Register as many URLs as you need and pick exactly which events each one receives: incoming messages, delivery statuses, template approvals, number quality alerts and more.
- Several URLs per connected number
- Event filter per webhook
- One-click test delivery
- Pause and resume without deleting
- HMAC signature on every delivery
- Automatic retry on failure
Available events
28 eventsmessagesIncoming messages and delivery statuses
smb_message_echoesMessages sent from the WhatsApp Business app
message_template_status_updateTemplate approval or rejection
message_template_quality_updateChanges in template quality
message_template_components_updateChanges to a template’s components
account_alertsAccount alerts: quality, approvals and blocks
account_updateGeneral WABA account updates
account_review_updateProgress of the account review process
account_settings_updateChanges to account settings
phone_number_name_updateChange to the number’s display name
phone_number_quality_updateUpdates to the number’s quality
business_capability_updateChanges to the business’s limits and capabilities
business_status_updateBusiness status updates
template_category_updateTemplate category reclassification
template_correct_category_detectionCorrect category detection on templates
flowsWhatsApp Flows events
callsVoice calls started by contacts
securityAccount security events
automatic_eventsAutomatic events generated by the platform
tracking_eventsConversion tracking events
historyMessage history synchronization
payment_configuration_updatePayment configuration updates
partner_solutionsPartner solutions integrated with the account
group_lifecycle_updateGroup creation and termination
group_participants_updateParticipants joining and leaving groups
group_settings_updateChanges to group settings
group_status_updateGroup status updates
user_preferencesContact preferences and opt-out
Your entire tech stack, fully connected
Joinotify plugs into where your flow already lives: WordPress through the plugin, n8n and Make through the API, Chatwoot through the inbox. Events come in, messages go out, and nothing has to be rewritten.
Start free- WordPress
- WooCommerce
- Elementor
- WPForms

- WhatsApp
- n8n
- Make
- Chatwoot
- WordPress
- WooCommerce
- Elementor
- WPForms
- n8n
- Make
- Chatwoot
It is cheaper right up to the day the number goes down.
Unofficial libraries impersonate WhatsApp Web. Any app update drops the connection, and any volume spike trips Meta’s automated detection. You find out you have a problem when support has already stopped.
Operating outside the terms puts your company’s number at risk — or your client’s. A ban in the middle of a campaign has no appeal, no return date and nobody to call.
The official API exists precisely for automation. It is the same integration work, with the difference that nobody can take your number offline for using it.
This account can no longer use WhatsApp
After review, we concluded that this account’s activities violate the WhatsApp Terms of Service.
No warning. No appeal. No recovery.
Three ways to send over WhatsApp.
The same message, by three different routes — including the rows where we are not the better option.
Joinotify is a Brazilian platform that provides access to Meta’s official WhatsApp Cloud API without requiring business verification, App Review or infrastructure of your own.
It works as a proxy: the call is forwarded to Meta and the response comes back unchanged, so every Cloud API endpoint is available.
It serves both whoever integrates by code and whoever works in the panel: shared inbox, contacts, audiences, campaigns and automation flows. It is not a tool for blasting bought lists — everything goes through the official API, with consent and approved templates. A free WordPress and WooCommerce plugin is included.
Drag the table sideways to see all three columns.
The unofficial route is the cheapest of the three, and stays that way right up to the day the number is banned — which comes with no warning and no appeal.
Proudly built in Brazil
We are driven by the pride of building software with passion and innovation. From Brazil to the world!
- Support in Portuguese, English and Spanish
- Brazilian company since 2019
- Invoicing in USD or BRL
One plan with everything included: plugin, API and webhooks.
Each plan carries an allowance of numbers and has no message cap. The WordPress plugin is included in all of them: you never pay for it separately.
How many WhatsApp numbers will you connect?
Pick the amount and see the plan that fits it, with the monthly and the yearly price side by side.

Joinotify - Start - Monthly
$9.90/ month$9.90 billed every month · cancel anytime
$7.99/ month$95.90 billed every year · 19% off
Subscribe now1 number included
1 client in its own workspace

Joinotify - Growth - Monthly
$59.90/ month$59.90 billed every month · cancel anytime
$46.66/ month$559.90 billed every year · 22% off
Subscribe now10 numbers included
Up to 10 clients, each in its own workspace

Joinotify - Scale - Monthly
$199.90/ month$199.90 billed every month · cancel anytime
$116.62/ month$1,399.40 billed every year · 42% off
Subscribe now50 numbers included
Up to 50 clients, each in its own workspace
Safe and secure payments, powered byStripe
We store no card details on our servers. Payment is handled by the gateway and the site is served over TLS.
Accepted payment methods
- Visa
- Mastercard
- American Express
- Discover
- Diners Club
- JCB
- UnionPay
- eftpos Australia
- Apple Pay
- Google Pay
Questions that come up all the time.
Didn’t find what you were looking for? Talk to us on WhatsApp.
- Active account: the number has to be in active use in the WhatsApp Business app, with a consistent history and no recent blocks.
- Meta Business Manager: the phone number must be registered and linked to your Meta business manager.
- Up-to-date version: the WhatsApp Business app has to be on version 2.24.17 or newer.
- Integrated platform: activation requires a partner platform or CRM integrated with the official WhatsApp API — Joinotify is one.
- Account standing: Meta reviews the account age, the reputation and the quality rating of the number before approving coexistence.
Tag cloud:
- joinotify
- message automation
- automation plugin
- whatsapp automation plugin
- send pdf over whatsapp automatically
- send whatsapp messages automatically
- send whatsapp messages from wordpress
- send whatsapp messages from woocommerce
- whatsapp api
- official whatsapp api
- whatsapp cloud api
- abandoned cart whatsapp
- order notifications whatsapp
- lead magnet
- shared whatsapp inbox
- whatsapp campaign sending
- whatsapp chatbot
- whatsapp contact segmentation
- WordPress + WhatsApp
No more bans. No more instability.
Move to the official API today and send your first message in under 5 minutes.
- 7 days free
- Meta’s official Cloud API
- Support over WhatsApp