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

# Agent instructions: behaviour, offering, replies and follow-ups

> Tell the agent how to sound, what you sell and how to handle replies and follow-ups, per channel.

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

By the end of this page one agent will sound the way you want on every channel it uses, and you will know which boxes were already filled in for you and which one is genuinely empty.

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

## Before you begin

* An agent already exists. Instructions belong to one agent, not to the workspace: they sit on that agent's own **Agent Instructions** tab, between **Sources** and **Settings** on the agent's tab strip. Everything else about the agent (its goal, its channels, its message format) is on **Settings**; see [agent settings reference](/en/ai-agents/agent-settings-reference).
* Saving needs one permission more than the block above lists: `update-campaigns`. Without it every field still opens and the save bar still appears, but **Save** is greyed out and hovering it says "You don't have permission to do this".

## Steps

<Steps>
  <Step title="Open the tab and pick a channel">
    Open the agent, then its **Agent Instructions** tab. You land on the email instructions. A strip
    of channel sub-tabs appears above the cards only when there is a second channel to switch to:
    **LinkedIn** and **WhatsApp** each get one when the workspace has that channel available, *or*
    when this agent already has an account of that type attached, and **Email** joins them as the
    first sub-tab. The second condition is deliberate, so an agent whose workspace loses a channel
    can still be edited. With neither channel qualifying there is no strip, and the email
    instructions are the whole tab.

    Whichever channel you pick, the cards are the same three (**Behaviour & tone**, **Offering** and
    **Stage playbook**), and LinkedIn adds a fourth, **Post engagement**. On WhatsApp a line above
    the cards counts how many of the agent's leads have a phone number, because the rest are skipped
    on that channel.

    <Screenshot id="ai-agents/agent-instructions--channel-tabs" url="/ai-agents/12?tab=instructions" alt="The Agent Instructions tab with Email, LinkedIn and WhatsApp sub-tabs across the top" caption="One sub-tab per channel, each with its own separate set of instructions." />
  </Step>

  <Step title="Set behaviour and tone">
    **Behaviour & tone** is the voice for every message on that channel: tone, writing style and any
    hard rules.

    It is not blank when you arrive. The box comes pre-filled with the built-in default for that
    channel (the text the agent actually runs on if you never touch it), so you edit real text
    rather than guess at an empty box. Email, LinkedIn and WhatsApp each have their own default, so
    one agent can sound different on each. Clear the box and the agent goes straight back to that
    default; there is no way to leave it with nothing to say.

    On Email the box also offers template variables to drop into the text. LinkedIn and WhatsApp
    switch them off, because variables are not resolved on those channels.

    Editing anything on this tab raises a save bar at the bottom of the page with **Save** and
    **Discard**. It stays hidden until something differs from what the tab loaded with.

    <Screenshot id="ai-agents/agent-instructions--email-tab" url="/ai-agents/12?tab=instructions" alt="The Email sub-tab with Behaviour & tone and Offering filled in, and the sticky save bar showing unsaved changes" caption="The save bar exists only while something is unsaved, so an untouched tab never shows it." />
  </Step>

  <Step title="Describe what you're selling">
    **Offering** is what the agent sells, and what you want out of this outreach. It is the one field
    on the tab with no built-in default: it starts empty, with an example behind it as placeholder
    text. Leave it empty and the agent has nothing to say about what you sell, even though Behaviour
    & tone carries on writing perfectly well on its own default.

    On Email the card also carries a reminder about
    [Shareable Files](/en/settings-team/shareable-files), the attachments the agent can pull in on
    its own.

    <Screenshot id="ai-agents/agent-instructions--offering" url="/ai-agents/12?tab=instructions" alt="The Offering card filled in with what's for sale and what this outreach is after" caption="Offering is the only field with nothing to fall back on, so a blank box here really is blank." />
  </Step>

  <Step title="Tune the stage playbook">
    Below Offering, **Stage playbook** adds instructions on top of Behaviour & tone for one moment in
    the conversation, each moment behind its own switch. Like Behaviour & tone, the stages arrive
    switched on and pre-filled with the built-in default for that stage.

    On Email and WhatsApp the stages are **Outbound**, **Reply** and **Follow-ups**. LinkedIn swaps
    Outbound for **First message** (the opener sent once an invitation is accepted) and keeps Reply
    and Follow-ups.

    Email's Follow-ups is more than one box. **All follow-ups** covers every one of them, and beneath
    it sit numbered slots, Follow-up #1 onwards. You get one slot fewer than the number of messages
    your workspace's follow-up cadence allows, and the count stops at a ceiling, so raising the
    cadence beyond that adds no further slots. A cadence of a single message gives you no numbered
    slots at all. A numbered slot left empty falls back to All follow-ups, and the follow-up counter
    restarts after each reply from the lead. WhatsApp keeps a single follow-up box with no numbered
    slots.

    Every field here carries a running character count. Template variable chips are offered on
    Email's Outbound, Reply and All follow-ups only. They are not on the numbered slots, and not on LinkedIn
    or WhatsApp, which say so under the box.

    Turning a stage's switch off is not cosmetic. It deletes that stage's text there and then, and
    the row changes to **Using the built-in default**.
  </Step>

  <Step title="Decide on post engagement (LinkedIn only)">
    LinkedIn's fourth card, **Post engagement**, decides whether the agent warms a lead up by
    reacting to their posts and by commenting on them. Both are on by default, and the comment
    wording is its own instruction field, pre-filled with a built-in default like everything else
    here.

    A comment is the one output on this tab that is public: everyone in the lead's network sees it
    and it cannot be taken back. The default is written for that. It asks for one short sentence
    about one thing actually said in the post, in the post's own language; never a pitch, never a
    mention of your company, product or a link; never a fact, number or prediction that could be
    wrong in public; and nothing at all when there is nothing short and specific to say.
  </Step>

  <Step title="Save your changes">
    **Save** sends only the instruction fields, and only for the channels that have a sub-tab. Which
    sub-tab you are looking at makes no difference: every channel with a sub-tab is saved in the same
    go. A channel with no sub-tab is not sent at all, so its pre-filled defaults never persist behind
    your back. The agent's other settings are never touched from here.

    Clearing a field and saving does something real: the blank is sent as a blank, so the agent falls
    back to the built-in default instead of keeping the old text. **Discard** puts every field back to
    the value it loaded with, though a stage switch you turned off keeps showing as off until you
    leave the tab and open it again.

    On Email the tab header carries a live preview, which reads the boxes as they are right now
    (unsaved edits included), so you can test a change before committing to it.
  </Step>
</Steps>

## What happens next

<Check>
  A green **Agent instructions saved** confirmation, and the save bar disappears.
</Check>

From then on, every message the agent writes on that channel is built from what you saved: Behaviour
& tone and Offering apply to all of them, and each stage adds its own instructions on top. Anything
you cleared uses the built-in default for that channel and stage again. Nothing else is triggered.
The agent keeps to the schedule it already had.

## Troubleshooting

<AccordionGroup>
  <Accordion title="I turned a stage off and my text disappeared">
    Expected, not a bug: a stage's switch controls that stage's text directly, not just whether the
    box is on screen. Turning it off clears the text immediately and the row reads
    **Using the built-in default**. Nothing has reached the agent until you save, so if you want the
    text back, leave the tab without saving and open it again.
  </Accordion>

  <Accordion title="There's no Save button">
    **Save** and **Discard** live in a bar at the bottom of the page that only appears once something
    differs from what the tab loaded with. If the bar is there but Save is greyed out, your role is
    missing `update-campaigns`; see
    [roles and permissions](/en/settings-team/roles-and-permissions).
  </Accordion>

  <Accordion title="The LinkedIn or WhatsApp sub-tab isn't there">
    A sub-tab needs one of two things: the channel available to your workspace, or an account of that
    type already attached to this agent. Attach one on the agent's **Settings** tab and the sub-tab
    appears. See [agent settings reference](/en/ai-agents/agent-settings-reference). Detach every
    account of that type again and, unless the workspace has the channel, the sub-tab goes with them.
    When neither channel qualifies there is no strip of sub-tabs at all, and the tab shows the email
    instructions on their own.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Agent settings reference" icon="sliders-horizontal" href="/en/ai-agents/agent-settings-reference">
    Every field on the Settings tab, section by section, with what it changes and what happens if you leave it alone.
  </Card>

  <Card title="Email Prompts (personality templates)" icon="message-square" href="/en/settings-team/email-prompts-personality-templates">
    Reusable behaviour and tone presets that get copied into an agent: editing a template never changes an agent that already used it.
  </Card>

  <Card title="Company details and AI Instructions & Context" icon="building" href="/en/leads/company-details-and-ai-context">
    The company record the AI writes from, its employees list, and the per-company rules you can set.
  </Card>

  <Card title="Shareable Files (AI-accessible attachments)" icon="paperclip" href="/en/settings-team/shareable-files">
    Upload a file with a description so the AI knows when to attach it, and follow it through the Analyzing state.
  </Card>
</CardGroup>
