Zammad WhatsApp channel

Support teams that take customer questions on WhatsApp can route those conversations into Zammad tickets through Meta's WhatsApp Cloud API. This page covers the Meta app, permissions, channel limits and the Meta costs to budget for.

On this page

Why teams add a Zammad WhatsApp channel and what it changes

The Zammad WhatsApp channel connects Meta's WhatsApp Cloud API to Zammad, so inbound and outbound WhatsApp messages become tickets that sit in the same queues as email and web requests. The need usually starts with the support lead's day. Customers already message the business on WhatsApp, agents already work in Zammad, and the conversations in between live on personal phones or in a separate app. Those chats have no clear owner, no status and no history that a second agent or a manager can see. Adding the channel moves that traffic into the queue where assignment, escalation and reporting already happen, so the team works from one place and stops reconciling two.

Teams usually add the channel for one of three reasons. The first is volume: when WhatsApp messages arrive often enough that unanswered chats get lost, a ticket with an owner and a timestamp is easier to manage than a shared phone. The second is a shared inbox need: several agents must answer the same number, see the same history and hand conversations over without forwarding screenshots. The third is service level tracking, because a first-response or resolution target can only be measured if every inbound message creates a record with a time on it. Before committing, measure what happens today. Count WhatsApp conversations per week, note who replies and how long first replies take, and check whether any service commitment depends on those times.

Once the channel is running, each WhatsApp conversation is handled as a ticket. Agents reply from Zammad, the customer's contact history sits next to the messages, and reports can show WhatsApp work alongside other channels. What changes most for the team is the handover: a conversation can move between agents or groups using the same assignment and escalation rules they already apply to email. Confirm early which message types, attachments and template messages the channel version you intend to run supports, and which rules Meta applies to when a business may reply freely and when it must use an approved template. Those rules shape how agents work, so they belong in the workflow design before go-live.

The channel does not decide several questions that come before the technical setup. It does not choose which Meta business account owns the WhatsApp number, who holds admin roles in Meta Business Manager, or which legal entity agrees to Meta's terms for your account. Those choices affect who can recover the number after a staff change and who receives billing from Meta. Settle them with your finance, legal and IT owners before anyone creates a Meta app. The channel also does not set your data handling position. WhatsApp traffic passes through Meta's infrastructure, so confirm with your privacy and security owners what that means for retention and processing rules before customers start writing.

Make four decisions in writing before the build starts: the owning Meta business account and its administrators, the number that will be used and who may change it, the queues and escalation rules that WhatsApp tickets follow, and the hours and fallback when no agent is online. Each one changes the setup, the permissions and the cost model that the following sections describe. A short written decision record also gives your procurement and security reviewers something concrete to check.

Which WhatsApp setup fits your support model

This table compares the four decisions that shape a Zammad WhatsApp channel: number, inbox structure, Meta account ownership and hosting. Read each row for when the option fits, what it asks of your team, and what to confirm with Meta and Zammad before you commit. Most setups are harder to change later than they look, so settle the number and account ownership first.

DecisionWhen it fitsTime and effort to set upWhat to confirm before choosing
New numberYour team is starting WhatsApp support and the number has no existing personal or business chat historyRegistration and verification with Meta come first, then mapping the number to the Zammad channelWhether Meta accepts the number for the Cloud API and that no other WhatsApp client still uses it
Move an existing numberYou already receive customer messages on a WhatsApp Business app and want to keep the same numberPlan a cutover window, since moving a number usually means losing app access to it, and test the new route in advanceWhat happens to existing chat history and whether the number can be moved back if the setup fails
One shared inboxA small team handles one queue and routing rules are simpleSingle channel mapping and one set of agent permissions to maintainWhich Zammad group receives inbound messages and whether agents outside that group need visibility
Several groups by topicSales, billing and support need separate queues and their own agentsRouting rules by group must be designed and tested, which adds ongoing upkeep as teams changeHow Zammad routes a conversation to a group and which admin settings control that behavior, as documented in the admin guide
Meta account owned by IT or a shared mailboxYou want the business account to survive staff changes and to keep admin access with more than one personSet up owners, admin roles and two-factor sign-in before the build startsWho holds the Meta Business Manager admin role and how access is revoked when someone leaves
Meta account owned by one employeeA very small team that accepts the risk of losing access if that person leavesLowest initial effort but higher long-term risk of lost accessWhether the account can be transferred and what recovery steps Meta requires
Zammad hosted in your data center or cloud accountYour policy requires customer messages and the webhook endpoint to stay on infrastructure you controlYou operate the public HTTPS endpoint, certificates, uptime and patching for the webhookWhich public address Meta must reach, which TLS settings are required, and the webhook settings verified in the Zammad admin documentation
Zammad hosted by a vendorYour team wants less operations work and the hosting location meets your data rulesLess infrastructure work, but you still configure the Meta app and channelWhere the instance runs, the data location and the webhook address supported for your plan

How messages move between Meta and Zammad

Every WhatsApp conversation in Zammad passes through three Meta objects and one Zammad endpoint. A Meta business portfolio holds the WhatsApp Business account, and that account owns the phone number customers message. A Meta app, registered under the same portfolio, uses the WhatsApp Cloud API to send and receive messages on that number. Zammad does not connect to WhatsApp users directly. It connects to the Cloud API through the app, so the first design decision is which portfolio and app will own the number, who holds administrator access to each, and how that access is removed when staff change roles.

Inbound messages start with a webhook. When a customer writes to the business number, Meta sends an event to a callback URL you register in the Meta app. That URL must be publicly reachable over HTTPS, so the Zammad host or the reverse proxy in front of it has to accept traffic from Meta on the public internet. Confirm the exact verification handshake, the required certificate chain, and any firewall or allowlist rules against current Zammad and Meta documentation during scoping. Once the event arrives, Zammad creates a new ticket or appends an article to an existing one, so the endpoint's availability directly affects whether customer messages reach agents.

Outbound replies follow the same API in the opposite direction. When an agent answers a WhatsApp ticket, Zammad calls the Cloud API using credentials taken from the Meta app. These typically include an access token and identifiers for the app and the phone number, and the webhook verification uses its own secret value. The field names, the screens where each value is found, and the token type that Zammad accepts can change between releases, so treat any list in an internal document as provisional until someone has checked it against the Zammad channel settings and the Meta developer console on the day of the build.

Plan for the points where this flow fails quietly. Access tokens expire or get revoked when an admin leaves, and the owner of token rotation should be named before go-live. Meta also applies its own messaging rules, including conditions under which a business may reply freely and when it must use approved message templates. Confirm those rules in the current Meta documentation, because an agent reply that Meta refuses will look like a Zammad fault unless the team knows where to check. Finally, write a short runbook covering webhook outages, token failures and how to test with a non-production number before customers are routed to the channel.

Setting up the Meta app and connecting Zammad

This sequence connects a Meta WhatsApp Business account to Zammad so inbound WhatsApp messages become tickets in the group you choose and agent replies reach the customer's handset. Each step closes with a check you can record before moving on. Meta's account verification and number registration depend on Meta's own review, so their timing sits outside your team's control.

  1. Confirm the Zammad version and HTTPS access

    The Zammad administrator confirms which version is running and that the instance answers on a public HTTPS address with a valid certificate. Meta sends webhook calls to that address, so an internal-only hostname or a self-signed certificate will block verification later. Record the exact version and the public URL, then open the site from a network outside your own. Done when the login page loads without a certificate warning from outside your network and the version is written into your setup record.

  2. Create or select the Meta business account

    Choose the Meta Business account that your organization controls and that will still be managed after current staff move on. The account owns the WhatsApp Business Account, its phone numbers and the app, so grant access to named staff with individual logins. Add at least two administrators from the IT or security team so access survives personnel changes. Done when the account appears in Meta Business Settings with the intended administrators assigned and you can open it under an administrator login.

  3. Verify the Meta business account

    Start business verification in Meta Business Settings using your organization's legal name, address and registration documents, as Meta currently requests them. Meta reviews the submission, so confirm the document list and review process in Meta's own documentation before you submit. Make sure the legal name matches the records Meta checks, so the review has no avoidable questions. Done when the account status shows as verified. Until then, confirm with Meta which WhatsApp features and numbers depend on verification.

  4. Create the Meta app and add WhatsApp

    In the Meta developer dashboard, create a new app using the business app type offered at creation, and link it to the verified Business account. From the app dashboard, add the WhatsApp product, which provides the API setup panel that the Zammad connection relies on. Keep the app in development mode while testing, and record the app ID and the WhatsApp Business Account ID, because the channel setup asks for both. Done when WhatsApp appears in the app's product list and both identifiers are saved in your setup record.

  5. Register and verify a business phone number

    Add the phone number your team will use for customer conversations to the WhatsApp Business Account. Meta's registration steps may remove that number from any existing WhatsApp or WhatsApp Business app, so confirm this with Meta before you start and move any active conversations first. Verify the number with the one-time code Meta sends. Done when the number shows a connected status with verified ownership, and any display name review Meta requires has been approved.

  6. Generate and store a permanent access credential

    Create a system user in the Business account, give it access to the app and the WhatsApp Business Account, and generate a permanent access token with the WhatsApp permissions the channel needs. Confirm the exact permission names in Meta's current documentation before you select them. Store the token in your secrets manager or the protected configuration store your team uses, and limit who can read it. Do not paste the token into tickets, chat or shared documents. Done when a test API call with the token returns the phone number details and you have recorded where the token is stored and who owns it.

  7. Set the webhook and subscribe to message events

    In the WhatsApp configuration of the app, enter the public HTTPS callback URL for your Zammad instance, using the callback path shown in the Zammad channel setup, and the verification token you chose. Meta sends a verification request to that URL, and Zammad must return the matching token. After verification, subscribe the app to message events for the WhatsApp Business Account so inbound messages and status updates are delivered. Done when Meta reports the callback as verified and a test message sent to the number appears in the Zammad channel logs.

  8. Add the channel in Zammad and test both ways

    In Zammad's channel settings, add the WhatsApp channel using the phone number, the stored token and the identifiers from the Meta setup, then assign the group that should receive new conversations. Send a test message from a personal handset that is not an agent account, and confirm a new ticket appears in that group with the message text. Reply from Zammad and confirm the reply reaches the test handset. Done when both directions work and you have recorded the test results and group assignment before customers are routed to the number.

Protecting the access credential, webhook and customer data

The WhatsApp channel joins three things that each need their own controls: a Meta credential that can send messages, a public webhook that receives them, and customer conversations that hold personal data. The cards below cover the credential, the Meta accounts behind it, the webhook, agent access, retention and audit logging. Work through them together before go-live, because a weak control in one area exposes the others.

Store the Meta access credential securely

The Meta access token that lets Zammad send and receive WhatsApp messages works as a bearer credential, so anyone who holds it can act through the channel. Keep it in a secrets manager or a restricted configuration source that only the Zammad service account can read. Keep it out of support tickets, chat threads, shared documents and screenshots of setup screens. Ask your Zammad administrator to confirm where the token is stored, who can view it in the admin interface and how it is rotated after staff changes.

Limit who manages the Meta app

Access to the Meta app and the WhatsApp Business Account is separate from access to Zammad, and it needs its own review. List everyone who holds an admin, developer or other role on the app and the business account, and remove access for people who have left or changed jobs. Keep the number of administrators small and name an owner for each role. Confirm the current role names and permissions in Meta's own documentation before you assign them, since these can change.

Serve the webhook over HTTPS

Meta sends inbound message events to a webhook URL that Zammad exposes, and that URL must use HTTPS. The verification token you set during webhook setup identifies your endpoint, so store it with the same care as the access credential and keep it out of public code and documentation. Confirm that your reverse proxy terminates TLS with a current certificate and that the webhook path is reachable only for the requests Meta sends.

Restrict agent access by group

WhatsApp conversations contain customer messages and phone numbers, so decide which groups can see this channel's tickets. Use Zammad groups to scope access so that only the teams that handle WhatsApp work can open those conversations. Check that agents outside those groups cannot reach the tickets through search, overviews or reports. Test the permissions with a non-admin account before go-live, and review group membership whenever teams change.

Set retention for messages and attachments

Decide how long WhatsApp message content, phone numbers and attachments are kept, and whether closed conversations are deleted, archived or anonymized. Message content and phone numbers are personal data, so confirm how this fits your data protection obligations and whether your existing policies already cover Zammad data handling for this channel. Document the retention period, and check that backups follow the same rule, since deleted data may remain in older backups until they expire.

Log administrative changes

Changes to channel settings, tokens, group membership and agent roles should leave a record of who made them and when. Confirm which administrative actions Zammad records in its own logs, which ones depend on your reverse proxy or infrastructure logs, and how long each log is kept. Forward these logs to your central log store where your audit process requires it, and review them after any change to the Meta app or the webhook.

Meta costs to budget for alongside Zammad

Self-hosted Zammad has no license fee, since it is licensed under the GNU Affero General Public License version 3. WhatsApp messaging is different: Meta bills for it, and those charges sit outside Zammad's pricing entirely. Finance leads should model the WhatsApp channel as its own budget line, separate from the helpdesk. The optional Zammad self-hosted support subscriptions (Business, Enterprise and Corporation) are priced on Zammad's pricing page and are a separate decision. The recurring and one-time costs that matter most for the channel are Meta's messaging charges, phone number costs, the infrastructure that hosts Zammad and its webhook, and the labor to set up and support the channel. Zammad does not set any of these figures, so the budget depends on numbers you collect yourself.

The largest variable cost is Meta's charge for WhatsApp messages or conversations under its current pricing. Before you budget, confirm three things on Meta's pricing page: the billing unit (per message or per conversation), the category rules that decide how each conversation is priced, and the per-region rates for the markets you will serve. Rates depend on region and category and Meta revises them, so record the date you checked. This page does not give a Meta rate. To estimate the line, multiply your expected conversation volume by the rate for each region and category you will use. Ask your support lead how many conversations customers start versus how many your team starts, because those flows may be priced differently and change the total.

The WhatsApp Business phone number is a recurring cost tied to your Meta setup. Confirm with Meta whether the number type you need carries a fee, whether any provider charges apply, and whether an existing number can be moved to the channel. Hosting is the second recurring line. Zammad needs PostgreSQL 15 or newer, Redis 7 or newer and a reverse proxy such as Nginx or Apache, and the webhook needs a publicly reachable HTTPS endpoint. Elasticsearch is optional but strongly recommended, and Memcached is needed when Zammad runs as several instances. Estimate the servers, storage, backups, certificates and monitoring for the environment that will carry the channel, and size the webhook for your peak inbound volume, not the average.

Labor is usually the largest one-time cost. It covers the Meta app and business verification steps, webhook configuration, message template submission and approval, channel testing, agent training and runbooks for failed deliveries. Setup is one-time, but monitoring, template updates, responses to Meta policy changes and Zammad upgrades recur. Ask any partner for an itemized, fixed-scope quote that lists these tasks, who holds the Meta business account and credentials, what is handed over, and whether post-launch support is included or sold as a retainer. Your internal team's time should appear in the model too, even when the work is done in-house.

Turn these inputs into one model with a row for each cost: Meta messaging by region and category, the phone number, hosting, one-time setup labor, recurring support labor and any optional Zammad support subscription. Run it at your expected volume and at a higher volume case, so the finance team sees how the Meta line scales. Before approving the budget, confirm the rates and category rules with Meta on the day of the decision, and recheck them at each renewal. Keep the model with the scope document, because changes to channel volume or scope will shift the largest lines first.

Channel limits to confirm before go-live

These six checks cover the Meta and Zammad rules that shape every WhatsApp conversation, so verify each one in writing before you settle on a routing design. Confirm each item against the current Meta WhatsApp Business Platform documentation and the Zammad documentation for your release, then repeat the key tests in a staging instance.

Messaging window and template rules

Meta's messaging rules decide when your agents can send free-form replies and when they must use an approved template. Read the current conversation window and template policy in Meta's WhatsApp Business Platform documentation before you design the workflow. In Zammad, test a reply to a conversation that has been idle longer than the window, and confirm what the agent sees. Ask your support lead which message types the team will need outside that window, since templates need approval ahead of time.

Per-number throughput and tier limits

Each WhatsApp Business number has messaging limits and quality-based tiers set by Meta, and those limits determine how many new conversations a number can open in a given period. Confirm the current tier for your number in Meta Business Manager and the limit definitions in Meta's documentation. Size queue routing and peak volume tests against that figure, and plan for tier changes that follow a drop in quality rating. Ask your Meta account contact what steps would raise the limit.

Multiple numbers on one instance

Support teams often run a main support line alongside sales or regional numbers. Confirm whether your Zammad version can connect several WhatsApp numbers to one installation, how each channel maps to groups and triggers, and whether agents reply from the correct number. Check the channel settings in the Zammad administrator documentation, then run a test with two numbers before you commit to a routing design. If one instance cannot serve every number, decide early whether separate instances are acceptable to your team.

Media types and attachments

Customers send photos, voice notes, documents and location pins, and each type reaches Zammad differently. Confirm which inbound media types arrive as attachments, which size limits apply on Meta's side and in Zammad's upload settings, and whether agent replies with attachments return to WhatsApp. Check how media is stored and how long it is kept, since attachments often contain personal data. Test each media type with a sample file and record the outcome for your privacy review.

Coexistence with the WhatsApp consumer app

Confirm whether a number connected through the Cloud API can also remain active in the WhatsApp consumer or Business app, and under which conditions. The answer affects staff who still message customers from a personal phone and the risk of one customer thread splitting across two inboxes. Check the current coexistence and migration rules in Meta's documentation, then write a rule for who may use the app and what happens to message history when a number moves. Confirm whether a move can be reversed before you migrate a production number.

Failed deliveries and status updates

A WhatsApp message can fail because the window has closed, a template was rejected, the recipient cannot receive messages or the number is restricted. Check which delivery status events Meta sends back, how Zammad records sent, delivered, read and failed states on each article, and whether an agent is notified when a reply fails. Confirm retry behavior in the Zammad documentation, and decide who owns a conversation that fails. Force a failure in staging to confirm that the ticket shows what happened.

Operating the WhatsApp channel after go-live

The WhatsApp channel needs five recurring tasks after go-live, and each one needs a named owner before handover. Zammad holds the conversations, but the channel also depends on a Meta app, a Meta business account, a public webhook endpoint and the platform beneath Zammad, which includes PostgreSQL, Redis and the reverse proxy in front of the application. Those layers usually belong to different teams. Write the ownership split as a one-page matrix that names a person or team for each task, with a backup for each, and review it at every handover. The owners described below are an illustrative starting point to adapt to your organization.

Webhook delivery is the task most likely to fail silently. Meta sends inbound messages and status updates to the webhook URL you configure, and if that endpoint returns errors, a customer's message may never become a ticket. Assign the platform team to alert on error responses at the reverse proxy and on failed background jobs in Zammad. Assign the Zammad administrator to review failed outbound sends each working day in the channel and in the logs. Confirm in Meta's current documentation how it retries undelivered webhooks and how long it keeps them, because that retention window sets how far back you can recover missed messages.

The Meta access credential should rotate on a schedule your security team sets from your own policy and Meta's current guidance for your app type, which you should confirm. Rotation changes a live channel. The platform engineer stages the new credential, the administrator sends a test outbound message, and the old credential is revoked only after that test passes. Separately, one named person should watch Meta Business Manager notifications for template approval results and message policy changes. A rejected template or a policy change can stop outbound messages even when the code and infrastructure are healthy, so that person needs a direct route to the business owner and the support lead.

Zammad upgrades need the same discipline. Read the release notes for the version you run before scheduling any upgrade, and check whether channel-related changes affect your configuration. Test inbound and outbound WhatsApp flows on a staging instance connected to a Meta test setup before production. Security fixes can be published on more than one release line at the same time, so track both the line you run and its security advisories. Each month, the business owner should compare conversation volume and message counts with the Meta charges on the invoice. Check those charges against the Meta pricing that applies to your account and region, because costs depend on message category and that pricing can change.

A webhook outage runbook should be short enough to follow during an overnight incident. Include the alert that starts it and who is paged, a check that the endpoint answers on the public hostname with a valid certificate, a review of reverse proxy and application logs and the Zammad background job queue, and a check of the webhook subscription and verification settings in Meta. Add a decision point for replaying missed events, using the retention window you confirmed with Meta. Name who tells agents and the business owner which customers may be waiting, and define the criteria for closing the incident. Rehearse the runbook once in staging before go-live so the first real use is not the first test.

What buyers ask before a WhatsApp channel build

What does a Zammad WhatsApp channel build cost?

The build has three cost layers, and DeployOpen quotes only one of them. DeployOpen prices the work from a written, fixed scope that lists Meta app setup, Zammad channel configuration, routing rules, testing and handover as separate line items, so you can compare them with your own effort. Zammad has no license fee for self-hosted software. If you want vendor support, Zammad's published self-hosted subscription tiers are Business at 2,999 EUR per year, Enterprise at 5,999 EUR per year and Corporation at 9,999 EUR per year (Zammad figures, confirm them on Zammad's pricing page before budgeting). Meta bills messaging charges directly to your business account, so check Meta's pricing for current rates by country and message category. Ask every quote to separate one-time costs from recurring costs.

How long does a Zammad WhatsApp channel setup take?

Duration depends mostly on steps outside Zammad's configuration, so no timeline should be committed before scoping. The longest items are usually on Meta's side: business verification, app review for the permissions you request, and approval of any message templates you plan to use, each of which runs on Meta's schedule. Other drivers are phone number readiness, a reachable Zammad host with a valid HTTPS certificate, the number of groups and routing rules, and how many other systems the channel must feed. Testing with live customer conversations before go-live also takes calendar time. Ask for a written schedule that marks which milestones depend on Meta and which depend on your team, and confirm Meta's review timing with Meta directly.

What access and people does a WhatsApp build require from us?

Plan to provide five things before work starts. First, a Meta Business Manager account owned by your organization, with an administrator who can create or link a Meta app and grant permissions. Second, a phone number dedicated to the channel that can receive a verification code and is not tied to a personal WhatsApp account (confirm Meta's current eligibility rules). Third, a Zammad host your team controls that Meta can reach over HTTPS for webhook callbacks, running PostgreSQL 15 or newer and Redis 7 or newer. Fourth, administrator access to Zammad and your change approval process. Fifth, a named business owner who approves routing, templates and escalation paths. Most delays come from decisions nobody has made yet, so the named owner matters as much as the technical access.

Can our own team build a Zammad WhatsApp channel alone?

Yes, an internal team can build the channel alone if it has people comfortable with Meta app administration, webhooks and Zammad administration, plus time to work through Meta's verification steps. The skill gaps usually sit in three places: Meta business and app setup, the network path from Meta to your Zammad host, and the routine that runs after go-live. A partner adds the most value when the team is short on one of those skills, has a fixed go-live date, or needs an independent review of access and security decisions. Whichever route you take, check the work against Meta's current developer documentation, because Meta changes its permission and policy requirements. Ask for a written scope either way, so you know which tasks you keep, which you hand over and what done means for each.

What recurring work follows a WhatsApp channel go-live?

Three recurring costs and tasks follow go-live. The first is messaging charges, which Meta bills and which scale with the volume and type of conversations your team handles. The second is platform maintenance: Zammad publishes security releases on more than one line, such as 7.2.1 and 7.2.2 on the 7.x line and 6.5.5 on the 6.5 line, so someone must apply patches and retest the channel after each upgrade. The third is subscription renewal if you buy Zammad support, which Zammad sells per year. Also plan for ongoing Meta upkeep: keeping templates approved, rotating access credentials as Meta's guidance requires, watching for permission changes and removing departed staff from the Meta account. Assign an owner and a calendar date to each item before go-live.

Does Zammad's support subscription cover Meta-side WhatsApp problems?

Do not assume it does until Zammad confirms the scope in writing. Zammad's published self-hosted support tiers set response times of 6 hours for Business, 4 hours for Enterprise and 2 hours for Corporation (Zammad figures). Zammad's Kubernetes documentation states that its support covers the Zammad application only and excludes Kubernetes-specific issues, which suggests a similar boundary may apply to the services around the application. Meta's app review, business verification, permission decisions and messaging policies sit with Meta, and a Zammad subscription cannot change them. Ask Zammad which WhatsApp issues it handles, which it routes to Meta or to you, and how it handles a fault that starts on Meta's side. DeployOpen can plan and document that boundary, but the subscription terms come from Zammad.

Which Zammad versions and dependencies does a WhatsApp channel need?

Confirm the minimum Zammad version for the WhatsApp channel in Zammad's current documentation before choosing a release. Zammad 7.2 was released on 23 September 2026, followed by security releases 7.2.1 on 6 October 2026 and 7.2.2 on 8 October 2026. Security fixes also shipped for the 6.5 line as 6.5.5 on 15 October 2026, so a team on 6.5 should apply that release. Whatever version you pick, Zammad needs PostgreSQL 15 or newer and Redis 7 or newer for websocket connections, plus Nginx or Apache as the reverse proxy. Multi-instance deployments, such as containers or cluster nodes, also need Memcached. Pin the chosen version in your change record and retest the channel after each upgrade.

Why do inbound WhatsApp messages fail to create Zammad tickets?

Start with the path from Meta to Zammad, because failed webhook delivery is a common cause of silence. Check that the callback URL is publicly reachable over HTTPS with a valid certificate chain, that the reverse proxy (Nginx or Apache) forwards the request to Zammad without blocking it, and that the verify token set in Meta matches the one in Zammad. Next, confirm the Meta app subscribes to message events for the phone number and runs in the mode you intend. Then review Zammad's logs for channel errors and confirm Redis is available, since websocket updates depend on it. Finally, check that the phone number is still registered and that the access credential has not expired. Work through the checks in that order and record which one resolved the fault.

How DeployOpen scopes and delivers a Zammad WhatsApp channel

DeployOpen starts with a written scope that names the Meta app, the WhatsApp Business Account, the phone numbers and the Zammad groups that will receive conversations. The work is then built in infrastructure you control, tested end to end, documented and handed over to your team. Engagements are fixed-scope, and ongoing support is available as a retainer.

How we scope

  • The written scope names the Meta app, the WhatsApp Business Account and the phone numbers connected to Zammad.
  • Required Meta permissions and account status are confirmed before the build starts.
  • Channel limitations and the Meta message costs you will carry are written into the scope so budgets are set knowingly.

How we build

  • Meta app setup, webhook configuration and the Zammad channel connection are built in your infrastructure.
  • Inbound and outbound conversations are tested as Zammad tickets, including replies and assignment behavior.
  • Secrets, access to the Meta app and the Zammad admin roles are set up under your access model.

How we hand over

  • Configuration, the Meta app setup and recovery steps are documented for your administrators.
  • A runbook covers token rotation, webhook failures and what to check when a conversation does not arrive.
  • Your team receives a walkthrough of the channel, its limitations and where the Meta costs appear.

How we support

  • Ongoing support, Zammad upgrades and Meta app changes can be covered by a retainer.
  • Meta API changes that affect the channel can be reviewed under the retainer scope.
  • Security testing of the integration and Zammad itself is available as a separate engagement.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.