> ## 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 Outlook or Microsoft 365

> One-click sign-in with Microsoft, what the consent screen asks for, and how to reconnect when access is revoked.

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 Microsoft mailbox by signing in with Microsoft. There is no password to enter and
no server address to look up. Microsoft handles the sign-in, and you only confirm what the
account is allowed to be used for.

<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>Email 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 Email Accounts <code>read-senders</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-senders</code> to add one, <code>update-senders</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

* A Microsoft mailbox you can sign into. The sign-in goes to Microsoft's shared sign-in
  endpoint, the one that serves both Outlook.com addresses and Microsoft 365 work or school
  accounts.
* On a work or school account, your tenant may require an administrator to approve access
  before anyone can grant it. See Troubleshooting below.

## Connect the mailbox

<Steps>
  <Step title="Open the provider list">
    Go to <UiPath>Integrations → Integrations → Email Accounts</UiPath> and choose
    **Add senders**, then **Connect**.

    Gmail and Outlook lead the list as the two featured cards, and Outlook's carries a
    **1-click** badge (1). Choose **Outlook**.

    Every other provider in the grid below asks for the mailbox password, and most of them
    fill in the server settings for you. Outlook is the only card that asks for no password
    at all.

    <Screenshot id="email-accounts/connect-outlook--card" url="/senders?senders=connect" alt="The provider list, with Gmail and Outlook shown as the two featured cards above a grid of other providers; the Outlook card carries a '1-click' badge" caption="The only card here that hands you to a provider's own sign-in instead of a password form." marks={[{ n: 1, x: 74, y: 33 }]} />
  </Step>

  <Step title="Review what you're granting">
    Before the browser leaves the app, this screen lists what the mailbox will be used for:
    sending emails on your behalf, reading replies so your AI agents can answer, and seeing
    your name and email address.

    It also says plainly: "We never see your password, and you can disconnect anytime from
    your Microsoft account." Choose **Continue with Microsoft** when you're ready.
  </Step>

  <Step title="Sign in and approve access">
    The next step happens on Microsoft's own sign-in page, on Microsoft's own domain. Sign in
    with the mailbox you want to connect, then approve the access.

    Four permissions are requested, and Microsoft describes them in its own words: signing
    you in and reading your basic profile, sending mail as you, read and write access to your
    mailboxes over IMAP, and keeping that access after you close the browser. The last one is
    what lets sending and reply-reading carry on without you signing in again. The IMAP
    permission is wider than the "read replies" line on the previous screen: it is the
    standard mailbox scope, not a replies-only one.

    <Screenshot id="email-accounts/connect-outlook--consent" frame="bare" alt="A representative example of Microsoft's own hosted consent screen, asking the reader to sign in and approve the permissions requested" caption="A representative example: this is Microsoft's own page, so it cannot be captured from a local build. It never carries our styling, and we never see what you type into it." />
  </Step>

  <Step title="You're back">
    Microsoft sends you straight back to the app, onto the new account's own page, with the
    overlay on top confirming the connection. Choose **Done** to close it.
    **Add another sender** goes back to the provider list instead.

    The confirmation does not name the mailbox it just connected. The address is on the
    account page behind it.

    <Screenshot id="email-accounts/connect-outlook--returned" frame="bare" alt="The confirmation panel reading 'Your email is connected', with Done and Add another sender buttons" caption="A representative example: this screen only exists mid-return from Microsoft, so it's captured against a simulated response." />
  </Step>
</Steps>

## What happens next

<Check>
  The mailbox is on the Email Accounts page, as **Active** if the connection tested clean.
</Check>

The confirmation screen says what happens from there: "Your sender is live. We'll pace its
sending automatically to protect deliverability."

That screen reports that the round trip finished, not that the mailbox works. Right after
Microsoft hands the account over we test the access we were given and register the mailbox
for sending. If either step fails the account is still created, and still returns you to this
screen. It lands on the list as **Error** instead, with the reason beside it. The list is
what to trust.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The sign-in never brought you back">
    An account is only created once Microsoft has handed over a token, so a sign-in you
    cancelled, declined, or that failed for any other reason connects nothing and leaves
    nothing to clean up.

    It also will not return you to the overlay. Instead of landing back on Email Accounts you
    stop on an error page, with none of the wording above. That is the whole of the failure:
    go back to <UiPath>Integrations → Integrations → Email Accounts</UiPath> and start again.
  </Accordion>

  <Accordion title="Your Microsoft administrator has to approve access first">
    A Microsoft 365 tenant can require an administrator to approve an application before
    anyone in the tenant is allowed to grant it access. Until that approval exists the
    sign-in cannot finish, and no account is created.

    The fix is not on your side. Ask your administrator to approve access for the app, then
    start again from the provider list. Nothing on this end needs undoing first.
  </Accordion>

  <Accordion title="The mailbox connected, then later shows Error">
    Access granted once can be withdrawn later: the account is removed, the password
    changes, or someone revokes access in Microsoft's own security settings. A scheduled
    check notices and moves the account to **Error** with "OAuth authorization is no longer
    valid — the account may have been deleted or access revoked. Please reconnect."

    **Reconnect**, in the red banner on the account's own page, re-tests the access already
    granted rather than opening a new sign-in. If the access still works the account
    recovers. If it really was withdrawn, the account stays in **Error** with a message
    starting "OAuth verification failed", and the mailbox has to be connected again from the
    start. See [Fix an email account in Error](/en/email-accounts/reconnect-a-sender).
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Add senders" icon="plus" href="/en/email-accounts/add-senders">
    Connect, import a CSV, or order managed infrastructure: how to choose between them.
  </Card>

  <Card title="Reconnect an account" icon="refresh-cw" href="/en/email-accounts/reconnect-a-sender">
    What Reconnect actually does, and every Error message explained.
  </Card>

  <Card title="Email account statuses" icon="activity" href="/en/email-accounts/sender-statuses">
    Active, Paused and Error, and the chips that aren't a status at all.
  </Card>

  <Card title="Connect Gmail or Google Workspace" icon="mail" href="/en/email-accounts/connect-gmail">
    The other featured provider, connected with an app password instead of a sign-in.
  </Card>
</CardGroup>
