# Onboarding Clients via Dashboard

> Send a client a link to connect their WhatsApp Business account or Facebook Page into your project

A client invitation is a link. Your client opens it, signs in with Facebook, and connects their own WhatsApp Business account or Facebook Page. When they finish, the channel shows up in your project as a new sender.

## Create an invitation

1. In the [dashboard](https://dashboard.zavu.dev), select the project the client's channel should land in.
2. Open **Client invitations** and click **New invitation**.
3. Choose the **Channel** and type the **Client name**. Both are required here: the name is how you find the client in the list later. The dialog also shows the name your client will read on the invitation page, which is your workspace's name; change it from the workspace switcher.
4. Optionally, open the extra options (in the new interface they are under **Email, number and expiry**):

| Field | Description |
|-------|-------------|
| Client email | The link is also emailed to this address. |
| WhatsApp number | WhatsApp only. Pre-assigns a number from this project. Only numbers that are active, approved and not on a sender are offered. |
| Link expires in | 1 to 30 days. Defaults to 7. |

5. Click **Create link**. The dialog shows the link and a ready-to-send message for your client, with the link, what to have at hand and its expiry. Each pending row also has a **Copy link** button.

> **Note:**
> One invitation connects one channel. To onboard a client on WhatsApp and Messenger, create two invitations; each completes into its own sender.

### What it costs

Before you create the link, the dialog says what the connection will cost on your plan:

- **Free**: each connection uses one of the two connections your workspace includes, and Free allows a single WhatsApp Business account among them. When the slots, or the WhatsApp account, are already in use, your client's connection still completes, but it stays inactive until you free one or upgrade. The dialog names what is holding them.
- **Paid plans**: a connection your plan does not include is created inactive and costs nothing until you activate it, after seeing the price.

An inactive connection does not send or receive. Activate it from **Connected channels** (**Accounts** in the current interface), or with `POST /v1/senders/{senderId}/channels/{channel}/activate`.

## What your client sees

### WhatsApp

1. The invitation page, with your company name and what they need: a Facebook account with access to their business, and a phone number for WhatsApp unless you pre-assigned one.
2. Facebook's window, where they sign in, select or create a WhatsApp Business Account, and choose the number.
3. A confirmation when the number is connected.

If the number already runs on the **WhatsApp Business App**, your client can choose to connect that app in Facebook's window instead of registering the number from scratch. They keep using the app on their phone, and Zavu sends and receives through the same number. See [WhatsApp Business App connection](https://www.zavu.dev/docs/guides/whatsapp/business-app) for the limits of this mode.

A number used on personal WhatsApp cannot be connected until it is removed from it.

### Pre-assigned number

If you pre-assigned a number, the invitation page shows it. Your client enters it in Facebook's window and chooses **Phone call** to verify it. Zavu answers the call and shows the code on the invitation page for them to type.

### Messenger

Your client signs in with Facebook and picks a Page they administer. That Page's Messenger inbox, including Marketplace chats, is routed to Zavu. They need admin access to at least one Page.

> **Warning:**
> A Facebook Page can be connected to one Zavu project at a time. If your client picks a Page another project already connected, the newer connection wins and the older one stops receiving messages.

## Follow invitations

### Statuses

| Status | Meaning |
|--------|---------|
| **Pending** | The link is waiting. In the new interface the row also says whether your client has opened it. |
| **Connecting** | Your client is in Facebook's window right now. |
| **Connected** | The channel is in your project. The row names the number or Page, links to the sender and shows its ID. |
| **Failed** | Your client started and did not finish. The reason is written under the status, with whether the same link still works for a retry. |
| **Expired** | The link expired before anyone used it. |
| **Cancelled** | You cancelled it. |

A connected row says **Inactive** when the connection still needs activating. In the new interface it also shows the last seven days: how many conversations there were, how many are waiting for a reply (with a link straight to it when there is one), and a link to connect an agent if the sender has none switched on.

The new interface opens on **Active** invitations; cancelled ones, and links that expired unused or after a failure, are under **All**.

### Actions

| Action | When |
|--------|------|
| **Copy link** | While the link still works. |
| **Generate a new link** | Pending, failed, expired or cancelled invitations. The old link stops working, and the new one lives as many days as the original. With an email on file, the new link is also emailed. |
| **Cancel invitation** | Pending, failed or expired invitations. |

Neither a new link nor a cancel is possible while the status is **Connecting**: your client is using the link at that moment. If they close the window without finishing, the invitation moves to **Failed** within two hours and both actions become available.

### Webhook

Every status change except expiry is delivered to your project webhook as `invitation.status_changed`. Configure it under **Webhooks**, or with `POST /v1/invitations/webhook`. See [API integration](https://www.zavu.dev/docs/guides/partner-invitations/api).

## Troubleshooting

| Issue | What to do |
|-------|------------|
| Your client sees "Invalid invitation" | The link expired, was cancelled or was replaced by a new one. Generate a new link. |
| Facebook did not return the account or the number | Usually a browser extension blocking Facebook's window. Ask your client to retry with the same link in another browser. |
| Your client closed Facebook's window | The same link works for a retry until it expires. |
| The verification code never arrives on a pre-assigned number | Make sure your client chose **Phone call**, not SMS. |
| The invitation is connected but nothing sends | The connection is inactive. Activate it from **Connected channels**. |

## Next steps

  - [API integration](https://www.zavu.dev/docs/guides/partner-invitations/api): Create invitations from your own product
  - [Send messages](https://www.zavu.dev/docs/guides/whatsapp/overview): Send through your client's new sender
