> ## 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.

# Why the agent's daily sending numbers move

> Each channel's share is computed live from account health, warm-up progress and how many other agents share the account.

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>;
};

**Sending limits** is the card on an agent's **Dashboard** tab that answers "how much can this
agent still send today, on each channel it has an account for". Every figure on it is worked
out on the server from those accounts each time the agent loads, not a number you type in.

<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">Outreach<span className="pl-path__sep">→</span>AI Agents</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 AI Agents <code>read-campaigns</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-campaigns</code> to add one, <code>update-campaigns</code> to change one, on top of the permission above.</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>

<Screenshot id="ai-agents/sending-limits--multi-channel" frame="bare" alt="The Sending limits card with two channel rows, Email and LinkedIn. The LinkedIn row shows a caption breaking its total into invites, messages and InMails, a usage bar, a big approximate number with /day beneath it, and a status line. A small info icon sits in the card header." caption="One row per attached channel. A row with more than one budget (LinkedIn, WhatsApp) adds a caption breaking the total down." marks={[{ n: 1, x: 92, y: 9 }, { n: 2, x: 55, y: 47 }, { n: 3, x: 90, y: 50 }]} />

## How it behaves

### The number is a share, not a quota

The (1) info icon in the header says it in one line: daily limits move on their own, new accounts
warm up gradually, limits follow inbox health, and they are split evenly across every active agent
using the same account. That is why the headline per-day figure (3), each budget in the caption and
the "left" figure in the status line all carry a leading ≈. The count of what the agent has already
sent today does not. That one is exact.

What moves underneath differs by channel:

* Email's share is built from the current [Smart Daily Limit](/en/email-accounts/smart-daily-limit)
  of each attached mailbox, and an hourly pass revisits those limits, so an email figure can hold
  steady for a while and then step once that pass has run. Only mailboxes that are active and still
  managed by Smart Daily Limit count towards it: switch a mailbox to a manual daily limit and it
  stops contributing to this figure at all.
* LinkedIn and WhatsApp have no equivalent pass. Their ramp step is read from the account's own age
  at the moment of the request, so the figure climbs by itself as soon as an account crosses into
  the next step, with no job to wait for.

Nothing on the card is a stored setting: the whole split is recomputed for the request that loads
the agent, so a change to a mailbox, an account or another agent shows up the next time you open
this page rather than at some scheduled hour (come back moments later and the app may reuse the
answer it already has).

One consequence worth knowing: the share is worked out as if this agent were active, whether it
actually is or not. A paused agent's card still shows a live figure, not zero: what it would get
the moment you resumed it, split among however many agents are active on the account right now.

### One row per attached channel, and only channels this agent uses

A channel gets a row when this specific agent has at least one account of that kind attached to
it: its own email accounts (or the whole workspace roster, if it is set to send from all of them),
its own LinkedIn account, its own WhatsApp account. An account connected somewhere else in the
workspace but not given to this agent does not add a row here.

If the agent is set to send from every email account in the workspace, the card waits for that full
roster to finish loading before it decides whether there is a channel at all, rather than flashing
**No sending channel yet** at an agent that has plenty.

This card only answers "how much room is left". Whether a lead can be reached on a channel at all
is a different question: WhatsApp only messages leads with a phone number on record, LinkedIn only
leads with a LinkedIn URL, regardless of what this card shows.

### LinkedIn and WhatsApp split their row into separate budgets

Email only ever has one number. LinkedIn and WhatsApp meter more than one kind of action, so their
headline is a total, and a row with more than one budget adds the caption (2) that breaks it apart:

* **LinkedIn**'s three action types (invitations, messages and InMails) are independent budgets,
  and the row lists only the ones actually configured on the attached accounts; a type with nothing
  set up does not show a stray "0" for it. The big number is the sum of whichever types are
  configured, so a single configured type leaves the row with one budget and no caption.
* **WhatsApp** splits differently: the headline is the messages budget alone. New chats (the
  budget for opening a conversation with a lead who has not replied yet) is shown separately and
  is not part of the headline figure, because it caps something different. Replies inside an
  existing conversation flow from minute one; starting a brand-new one is what the ramp and the
  post-connect cooldown gate. An agent can show plenty of message budget and still open nothing new
  when its new-chat budget is at zero.

### The status line says why, not just how much

Under the bar, each row prints one line naming the state that figure is in:

| State     | What the line says                                       |
| --------- | -------------------------------------------------------- |
| Sending   | How many were sent today, and an approximate number left |
| Warming   | **Warming up: sending starts as the accounts age**       |
| Exhausted | **Today's limit reached — resumes tomorrow**             |
| Blocked   | **Nothing available to send today**                      |

Warming and blocked look similar (both mean the channel is not sending), but they resolve
differently. Warming means at least one attached account is still ramping up and the figure climbs
on its own. Blocked means the channel has accounts but nothing to send today for a reason warm-up
will not fix, such as every attached account being paused or in an error state. WhatsApp reports its
new-chat gate as warming rather than blocked when a warming account is the cause.

### The footnote adds the one thing the rows cannot

Below the list, at most one line of small print appears, and it is chosen, not accumulated: if any
attached account on any channel is still warming up, the card says so and that the limits rise by
themselves: nothing to do. Only when nothing is warming does it fall back to naming how many other
active agents share the account, which is why a slice can look small when nothing is wrong. If
neither applies, there is no footnote.

### No channel yet

<Screenshot id="ai-agents/sending-limits--no-channel" frame="bare" alt="The Sending limits card in its empty state: a warning-tinted icon, the heading No sending channel yet, an instruction to add at least one channel, and an Add a channel button" caption="What an agent shows until a mailbox, a LinkedIn account or a WhatsApp account is attached to it." marks={[{ n: 1, x: 50, y: 46 }, { n: 2, x: 50, y: 80 }]} />

With no account of any kind attached, the whole card collapses to one message:
**No sending channel yet**, and the line under it (1) asks you to add at least one channel (a
mailbox, a LinkedIn or a WhatsApp account), so the agent can start sending. **Add a channel** (2)
opens this agent's own **Settings** tab and scrolls to its **Channels** section, the same place the
setup checklist's channel row points to.

### Warming shows in place of a live figure

<Screenshot id="ai-agents/sending-limits--warming" frame="bare" lang="en" alt="A Sending limits row for Email with a low usage bar and the status line Warming up: sending starts as the accounts age, in amber" caption="A representative example: warm-up state simulated for this screenshot, since it depends on account age rather than anything a demo workspace can be seeded with." marks={[{ n: 1, x: 35, y: 58 }]} />

The line at (1) is what a row shows when the channel's figure is zero specifically because an
attached account has not finished ramping, as opposed to zero for any other reason, which reads as
blocked instead. Expect it right after connecting a brand-new mailbox, LinkedIn account or WhatsApp
account: sending starts small and climbs as the account ages, with nothing to configure in the
meantime. For email that includes the [opening period](/en/email-accounts/quarantine-and-ramp-up)
in which a new mailbox is held at zero.

## Limits

|                                       |                                                                                                                                                                        |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Where it lives                        | The agent's **Dashboard** tab, top of the side rail, above the funnel and the setup checklist                                                                          |
| Channels it can show                  | Email, LinkedIn, WhatsApp: only ones with at least one account attached to this agent                                                                                  |
| Row states                            | Sending, warming, exhausted, blocked                                                                                                                                   |
| Footnote priority                     | Warming beats shared: the shared-with note only shows once nothing is warming                                                                                          |
| How the "shared with" count is chosen | The highest count among the rows, not a sum across them                                                                                                                |
| When the figure recalculates          | On the request that loads the agent. Email inherits its hourly-revisited Smart Daily Limit; LinkedIn and WhatsApp ramp steps are read from account age on each request |
| Which mailboxes count                 | Active mailboxes still managed by Smart Daily Limit; a manual daily limit takes a mailbox out of the figure                                                            |
| Paused agent                          | Still shows a live share: what it would get if resumed right now                                                                                                       |
| "Add a channel" destination           | This agent's own **Settings** tab, **Channels** section                                                                                                                |

## Related

<CardGroup cols={2}>
  <Card title="Smart Daily Limit: how your sending limit is calculated" icon="gauge" href="/en/email-accounts/smart-daily-limit">
    What actually sets each mailbox's number, and how often it is revisited.
  </Card>

  <Card title="LinkedIn action limits, schedule and ramp-up" icon="link" href="/en/channels/linkedin-limits-and-ramp-up">
    Invitations, messages and InMails on their own: how each is capped and ramped.
  </Card>

  <Card title="WhatsApp daily limits, new-chat budget and warm-up" icon="messages-square" href="/en/channels/whatsapp-limits-and-new-chats">
    The message budget and the new-chat budget explained on their own.
  </Card>

  <Card title="Daily limit is set to 0 during quarantine" icon="circle-question-mark" href="/en/troubleshooting/why-is-my-sending-limit-so-low">
    Start here when a channel's figure is smaller than you expected.
  </Card>
</CardGroup>
