What your agent can do
- Browse — List files and folders in sites and libraries, and list a site’s libraries and lists
- Read — Fetch file content (including many Office and Apple iWork formats via extraction), and read site pages, news posts, and wiki pages as text
- Read lists — List items (optionally filtered), inspect column schema, read item comments, and extract text from item attachments. Comments and attachments need app-only mode with a certificate — SharePoint’s REST API rejects client-secret credentials
- Create and edit text files — Create or update
.txt,.md, and.csvfiles - Upload files — Upload any stored file (Excel, Word, PDF, images, and more) from the agent’s documents to a library
- Organize — Move or rename files and folders, copy items (cross-site capable), create folders, and delete items to the site recycle bin (recoverable)
- Track changes — List files or list items that changed since a window you choose (
25h,7d, or an ISO timestamp). Change tracking looks at one library or list at a time. SharePoint only retains its change log for a limited period (60 days by default). Overlapping windows can return the same item twice — the agent should record what it has already handled. Document-library changes include deletions; for lists, deletions show up only once the agent passes back the token returned by an earlier call
Deleting through Abundly sends items to the SharePoint site recycle bin, not permanent removal. Your Microsoft 365 admins or site owners can restore them from there if needed.
How to enable
You can connect SharePoint in two ways. Pick the one that fits the agent.
Open the capability card on the agent and use the Personal / App-only picker at the top to switch between them.
Personal mode
Personal mode refused? Personal mode needs Microsoft OAuth configured for your deployment. The standard Abundly cloud has this in place, but on a dedicated or self-hosted deployment the picker may refuse Personal and point you to App-only instead — ask your Abundly contact to set up the Microsoft OAuth credentials for SharePoint. App-only mode is unaffected: it uses your own Entra app registration and works either way.
1
Enable the capability
Go to Settings → Capabilities and enable SharePoint, then pick Personal at the top of the card.
2
Connect your Microsoft account
Click Create new to sign in with your Microsoft account and create a personal access token. This token belongs to you and can be managed in your profile settings.If you already have a SharePoint token from setting up another agent, you can select it from the dropdown instead.
In many organizations, a Microsoft admin must approve the Abundly SharePoint app before the connection can be completed. If you see an “Almost There” message after sign-in, ask your admin to grant approval in Microsoft Entra, then try connecting again.
App-only mode
App-only mode runs SharePoint as the agent’s own Entra identity using the Microsoft client_credentials flow withSites.Selected permission. The agent gets access only to the sites an admin explicitly grants it — no broad tenant-wide read, no per-user token expiry.
1
Register an app in Microsoft Entra
In your customer’s tenant, go to Microsoft Entra → App registrations → New registration. Give it a name (e.g. “Abundly agent”). Accounts in this directory only is fine. No redirect URI needed.Copy the Directory (tenant) ID and Application (client) ID — you’ll paste them into Abundly in the last step.
2
Grant Sites.Selected
On the registration, go to API permissions → Add a permission → Microsoft Graph → Application permissions → Sites.Selected. Click Grant admin consent.
3
Create a client secret or upload a certificate
Under Certificates & secrets, create either:
- A client secret — copy the Value immediately (it’s only shown once). Store it in Abundly as a workspace secret of type SharePoint app-only — Client secret.
- A certificate — upload the public X.509 cert; you’ll need the SHA-1 thumbprint and the matching PKCS#8 PEM private key in Abundly. Store the PEM as a workspace secret of type SharePoint app-only — Certificate (separate type with a textarea so the multiline PEM is preserved exactly — pasting a PEM into a single-line input strips the newlines and Microsoft rejects it with a decoder error).
4
Grant per-site access
Sites.Selected starts the app with zero site access. A SharePoint or Global Administrator must grant the app access to each specific site you want the agent to reach.This is done via PowerShell — either PnP.PowerShell (Grant-PnPAzureADAppSitePermission) or Microsoft Graph PowerShell (POST /sites/{site-id}/permissions). Use whichever tool fits your environment.You’ll need:- The app’s Client ID
- The target site URL
- The desired permission level (
Read,Write, orFullControl)
Read unless the agent genuinely needs to create or change things. See Access scope for what can and cannot be narrowed.Repeat for every site the agent should reach.5
Configure Abundly
In the SharePoint capability card, switch to App-only. Paste the tenant ID, client ID, and the secret (or certificate + thumbprint). Save, then click Test connection to confirm Microsoft accepts the credential.Optionally:
- Default site URL — used by tools when no
siteUrlis supplied per call. - Granted sites — one SharePoint site URL per line, listing the sites you granted the app in the previous step. Microsoft doesn’t expose an API for the app to discover which sites it has been granted, so paste the list here. The agent sees it in its prompt as the authoritative starting set, and Test connection verifies each entry by calling Microsoft Graph for it.
Behaviour differences in app-only modeTenant-wide site enumeration isn’t supported with
Sites.Selected — every tool call has to target a specific site (siteUrl), drive (driveId), or full SharePoint URL (webUrl). The agent can still work across multiple sites in a single task; tell it which ones (via Granted sites, the agent’s instructions, the user’s prompt, or Default site URL) and it will iterate, calling tools once per site. If the agent tries a site you haven’t granted, Microsoft returns 403 and the tool surfaces that.If the secret expires or Microsoft rejects the credential, Abundly marks the integration as failing and shows a Reconnect banner on the capability card. The next successful Test connection or token acquisition clears it.Access scope
How you limit what an agent can reach depends on which mode you’re in.Personal mode
After you connect a new SharePoint token, Abundly takes you to a settings page where you can choose which sites to allow and optionally narrow access to specific folders. You can keep broad access by choosing Allow All & Continue, or save a restricted scope and apply least privilege from the start.You can update these SharePoint access settings later from Profile settings → Personal Tokens.
App-only mode
Scope comes from the site grants in Microsoft, not from settings in Abundly. Two things control it:- Which sites — the app reaches only the sites an admin has granted it. Microsoft enforces this: a site you haven’t granted returns 403, and tenant-wide enumeration isn’t possible at all.
- What it can do there — the permission level on each grant (
Read,Write,FullControl) applies to the whole site collection. If the agent only needs to read, grantRead. That is the strongest limit available in app-only mode, it’s enforced by Microsoft rather than by Abundly, and it costs one PowerShell parameter at grant time.
Text-based files (txt, md, csv) can be created and edited in place. Other file types — including Office documents — can be read, uploaded from the agent’s documents, and organized (moved, copied, renamed, deleted), but their contents cannot be edited directly in SharePoint. To update an Office document, have the agent generate a new version (for example with its code execution capability) and upload it with overwrite enabled.
Example use cases
- Document Search — “Find all documents in our Legal site that were modified this week”
- Content Retrieval — “Get the contents of the employee handbook and summarize it”
- Intranet Digest — “Summarize the news posts published on our Intranet site this month”
- List Tracking — “List the open items in the Projects site’s Risks list and flag anything overdue”
- Report Generation — “Every Friday, create a weekly summary report in the Team site based on our Slack activity”
- Spreadsheet Delivery — “Generate the monthly estimate as an Excel file and upload it to the Projects library”
- Cross-platform Sync — “Check my Outlook inbox every morning — if you see any invoice emails, save them to the Finance folder in SharePoint”

