> ## Documentation Index
> Fetch the complete documentation index at: https://help.pipelime.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect a WhatsApp number

> Link a phone the same way as WhatsApp Web, using a QR code or a pairing code, then set its message and new-chat limits.

export const UiPath = ({children}) => {
  const parts = String(children).split(/\s*(?:→|>)\s*/).filter(Boolean);
  return <span className="pl-path">
      {parts.map((part, index) => <span key={`${index}-${part}`}>
          {index > 0 && <span className="pl-path__sep">→</span>}
          {part}
        </span>)}
    </span>;
};

export const Screenshot = ({id, alt, caption, frame = 'browser', url, marks = [], lang = 'en', workspace = 'northwind-outbound'}) => {
  const src = `/images/screenshots/${lang}/${id}.png`;
  const chrome = url ? `app.pipelime.ai/${workspace}${url}` : 'app.pipelime.ai';
  return <figure className={`pl-shot pl-shot--${frame} not-prose`}>
      <div className="pl-shot__frame">
        {frame !== 'bare' && <div className="pl-shot__bar">
            <span className="pl-shot__dots">
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
            </span>
            <span className="pl-shot__url">{chrome}</span>
          </div>}
        <div className="pl-shot__media">
          <img src={src} alt={alt} loading="lazy" />
          {marks.map(mark => <span key={mark.n} className="pl-shot__mark" style={{
    left: `${mark.x}%`,
    top: `${mark.y}%`
  }} aria-hidden="true">
              {mark.n}
            </span>)}
        </div>
      </div>
      {caption && <figcaption className="pl-shot__caption">{caption}</figcaption>}
    </figure>;
};

Connect a WhatsApp number by linking your phone the same way as WhatsApp Web, then set the message and new-chat limits it works within.

<div className="pl-availability">
  <div className="pl-availability__row">
    <div className="pl-availability__label">Where</div>
    <div className="pl-availability__value"><span className="pl-path">Integrations<span className="pl-path__sep">→</span>Integrations<span className="pl-path__sep">→</span>WhatsApp Accounts</span></div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">Your role needs</div>
    <div className="pl-availability__value">Read access to WhatsApp Accounts <code>read-whatsapp-accounts</code>. Admin, Member and Viewer have it by default.</div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">To create or change</div>
    <div className="pl-availability__value"><code>create-whatsapp-accounts</code> to add one, <code>update-whatsapp-accounts</code> to change one, on top of the permission above.</div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">Your plan</div>
    <div className="pl-availability__value">Needs at least one seat for WhatsApp numbers.</div>
  </div>

  <div className="pl-availability__note">If you cannot find this in your sidebar, your workspace may have a custom menu configuration. Contact support and we will check it for you.</div>
</div>

## Before you begin

* Have the phone nearby, with WhatsApp installed and signed in. You link it the way you add a linked device to WhatsApp Web, so you never type your WhatsApp password here.
* Decide whether you want to scan a QR code or type a pairing code. Both are offered on the first screen of the dialog, and you can switch between them until you generate one.

## Steps

The dialog runs three steps, shown across the top: **Start**, **Link device** and **Configure**.

<Steps>
  <Step title="Start the connection">
    Go to <UiPath>Integrations → Integrations → WhatsApp Accounts</UiPath> and press **Connect Account**: in the
    toolbar if this workspace already has a number, in the middle of the screen if this is the first one.

    You can pick a **Tag** here, and it is optional. Leads created from this account's conversations are tagged with
    it automatically, so you can filter and organize them later.

    Press **Generate QR code**. To type a code instead, press **Use a pairing code instead** first: a phone field
    appears, it takes the country code and number as digits (anything else is dropped as you type), and the button
    becomes **Get pairing code**.
  </Step>

  <Step title="Link your phone">
    On the phone, open WhatsApp and go to Linked devices. Then link a device and scan the code, or link with a phone
    number and type the code, whichever one you generated.

    The dialog waits, re-checking every few seconds, and moves on by itself once your phone confirms the link. If
    WhatsApp rotates the code while you wait, the dialog swaps in the new one and restarts the countdown. **Refresh
    code** counts down next to the code and only becomes pressable once that countdown reaches zero. After a few
    minutes with nothing linked, it stops checking and says "Timed out. Refresh the code and try again."

    Ask for a fresh code rather than closing the dialog and starting the connection again. Linking and unlinking the
    same number repeatedly is itself one of the things WhatsApp restricts numbers for.

    <Screenshot id="channels/connect-whatsapp--qr-step" frame="bare" alt="The link-device step of the connect dialog: instructions to open WhatsApp on your phone, a QR code, and a Refresh code button counting down below it" caption="A real code is a one-time credential minted for one phone and cannot be photographed, so this one is placeholder text rendered as a QR. The layout is the product's, the code is not scannable." />
  </Step>

  <Step title="Set limits and delays">
    Once your phone confirms the link, the dialog moves to **Configure** on its own, headed by the linked account's
    WhatsApp profile name, or its number if there is no profile name yet.

    **Daily messages** and **Weekly messages** are the total this number may send. **New chats per day** and **New
    chats per week** are a separate, much lower budget, and they cover only conversations this number opens with
    someone who has never messaged it. Writing to a stranger is the riskiest thing a WhatsApp number can do.
    Replying to someone who wrote to you never counts against that budget. It does count against the message limit,
    which covers everything the number sends. Where a field has a ceiling, it is printed next to its label.

    **Min delay** and **Max delay** are the gap, in seconds, the number leaves between one action and the next.
    Anything below 10 seconds is raised to 10 when you save.

    <Note>
      WhatsApp can restrict a number that sends too fast, so keep the limits conservative and the delays generous.
      Active hours default to weekday business hours.
    </Note>

    Press **Save**. The dialog closes and the list reloads.

    <Screenshot id="channels/connect-whatsapp--configure-step" frame="bare" alt="The Configure step of the connect dialog, showing daily and weekly message fields, the new-conversation fields below them, and the minimum and maximum delay fields" caption="New conversations get their own, much lower budget. It is the one that decides how fast cold outreach can go, not the message limit above it." />
  </Step>
</Steps>

## What happens next

<Check>
  The number is on the WhatsApp Accounts page with an **Active** chip, and its **Sending Today** column shows how
  much of today's message and new-chat budget it has used.
</Check>

The 24-hour cooldown starts when your phone confirms the link, not when you press **Save**. For that first day the
number opens no new conversations at all, while replies to people who message you send as normal. After it, the
new-chat allowance climbs day by day until it reaches the number you set: see
[WhatsApp daily limits, new-chat budget and warm-up](/en/channels/whatsapp-limits-and-new-chats) for how that ramp
is paced.

Clicking the row, or its **Edit** icon, opens that number's own settings page, where you can change any of this
later.

<Screenshot id="channels/connect-whatsapp--accounts-list" url="/whatsapp-accounts" alt="The WhatsApp Accounts page: a KPI strip above a table listing one Active number with its message and new-chat counters" caption="Total Accounts, Active, Paused and Errors count every account the table is showing you, not just the rows on the current page, so they follow the search box." />

## Troubleshooting

<AccordionGroup>
  <Accordion title="Connect Account is greyed out">
    Every WhatsApp seat on your plan is in use. Hover the button and it says "You have reached your WhatsApp accounts
    limit. Upgrade your plan to connect more accounts." Deleting a number you no longer use frees its seat, or
    [change your plan](https://pipelime.ai/pricing).
  </Accordion>

  <Accordion title="The code expires before I can link it">
    The dialog treats both codes as short-lived: a countdown runs beside the code, and **Refresh code** becomes
    pressable when it reaches zero. Press it for a new code rather than closing the dialog and connecting again.
    Relinking the same number over and over is itself a restriction trigger, and a number that drops and links again
    starts its warm-up over.
  </Accordion>

  <Accordion title="It connected, but it will not start new conversations">
    That is what a newly linked number does. It waits 24 hours before opening any new conversation, then works up to
    the limit you set over its first several days. Replies are never held back by that. See
    [WhatsApp daily limits, new-chat budget and warm-up](/en/channels/whatsapp-limits-and-new-chats) for the whole
    ramp.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="WhatsApp limits and warm-up" icon="gauge" href="/en/channels/whatsapp-limits-and-new-chats">
    Why a number can send messages but not start a new chat, and how the ramp is paced.
  </Card>

  <Card title="WhatsApp Chat" icon="message-square" href="/en/channels/whatsapp-chat">
    Work two-way conversations with leads who have a phone number, from one list.
  </Card>

  <Card title="How your channel credentials are handled" icon="shield-check" href="/en/channels/security-of-connected-accounts">
    What gets stored when you connect a channel, and how to disconnect.
  </Card>

  <Card title="Get a phone number for a lead" icon="phone" href="/en/leads/get-a-phone-number">
    Reveal a lead's phone number so you have something to message.
  </Card>
</CardGroup>
