Naffes
العربيةStart free↗

WhatsApp

Register a WhatsApp number in Naffes CRM and wire the inbound webhook

Once Twilio is connected, two things stand between your team and its first conversation in Naffes CRM: registering the number messages are sent from, and pasting the webhook URL into Twilio so replies arrive. The WhatsApp Number screen shows a readiness banner that names the exact step still missing.

What you need

  • Twilio connected to the workspace, with the Account SID and Auth Token saved.
  • A number bought in Twilio that has finished WhatsApp sender onboarding. In the Twilio Console this is under Messaging → Senders → WhatsApp Senders, and it needs admin access to your company's Meta Business Portfolio.
  • Workspace-admin rights in Naffes.
Note

Naffes does not provision or buy numbers. Every number is bought and approved in Twilio first, then registered here.

Register the number and wire the webhook

  1. Open Messaging Numbers

    Go to Settings → Integrations → Channels → WhatsApp Number and click Register number.

  2. Pick the number

    Choose “Choose from my Twilio account” to list purchased numbers and WhatsApp senders together, or “Enter a number manually” in E.164 form with the country code, e.g. +9715XXXXXXXX.

  3. Set channel and label

    Select WhatsApp as the channel, add an optional label such as “Sales line”, tick “Use as default outbound number” for your main line, then click Register.

  4. Copy the webhook URL

    Under “Inbound webhook URL”, click Copy. In Twilio, open the sender, choose Edit Sender, paste the URL into its inbound message settings and save.

  5. Backfill what you missed (optional)

    Under “Pull recent messages from Twilio”, pick a window (last 24 hours, 3 days or 7 days) and click Pull messages to import messages Twilio received before the webhook was set.

Read the readiness banner

The screen shows one state at a time: the first stage that is not finished yet. Use it instead of guessing.

Readiness states on the WhatsApp Number screen
State shownMeaningNext step
Twilio isn't connected to this workspace yetNo credentials savedSave the Account SID and Auth Token on the Twilio tab
Twilio is connected, but no number is registered for messagingNothing to send fromRegister a number as above
This workspace can send. Inbound isn't confirmed yet.No inbound message has arrivedPaste the webhook URL in Twilio, then text the number from your phone
Messaging is set upInbound arrives and outbound has a numberNothing; start working from the inbox

From then on, a message from an unknown number creates a contact automatically, named from the sender's profile, with “WhatsApp” as its lead source. If the phone number already exists in the CRM, the message is linked to that contact instead of creating a duplicate. Continue in the unified inbox.

Troubleshooting

  • Red warning about an unsigned webhook: no Auth Token is saved, so the URL accepts unsigned requests and anyone who learns it could inject fake inbound messages into your workspace. Save the Auth Token in the Twilio settings right away to switch on signature checks.
  • “Nothing to import”: everything Twilio returned is already in the workspace, or your numbers had no messages in that window.
  • Message cap reached during a pull: there may be more in the same window. Run it again, or ask an administrator for a larger server-side backfill.
  • A pull does not replace the webhook: it recovers the past only. New messages will not arrive until the URL is set in Twilio.
  • “Try again in … seconds”: a pull can run once a minute per workspace; wait out the countdown, then run it again.

Questions

Questions 2

Can I register more than one WhatsApp number?

Yes. Register each number separately with its own label and mark one as the default outbound number.

Why isn't the number I picked in the Twilio wizard used for WhatsApp?

The wizard's number is for browser calling. WhatsApp and SMS sending and receiving use only the numbers registered on this screen.

Sources

  1. Twilio Docs: Register WhatsApp senders using Self Sign-upAccessed