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

# Office 365 agent: read and produce Office files

> Build one agent that reads Word, Excel, text, PDF, PowerPoint and image files from SharePoint or OneDrive, edits Excel workbooks, and drafts documents and presentations in the canvas.

This tutorial builds one agent with access to the Office files of your SharePoint sites and OneDrive, whatever their format.

## What you'll build

An agent in **Agent Creator** that:

* finds files in SharePoint and OneDrive, and quotes their link;
* answers questions about a Word, Excel, PDF or PowerPoint file;
* edits Excel workbooks in place, after the user confirms;
* drafts new documents and presentations in the canvas, ready to export and save to SharePoint.

## Watch first: configure the SharePoint connector

This four-minute video shows how to set up the [SharePoint connector](/apps-store/marketplace/connectors/sharepoint) this tutorial relies on: connecting an account from the chat, adding the capability to an agent, controlling authentication and authorized agents from a Builder workspace, and declaring the platform OAuth client. Use the buttons in the top-right corner of the player to switch the narration language and the subtitles.

<div className="pv-host not-prose" data-base="/tutorials/sharepoint/" data-tutorial="eyJ2ZXJzaW9uIjoxLCJsYW5ncyI6WyJlbiIsImZyIl0sImRlZmF1bHRfbGFuZyI6ImVuIiwibGFiZWxzIjp7ImVuIjoiRW5nbGlzaCIsImZyIjoiRnJhbsOnYWlzIn0sInVpIjp7ImVuIjp7ImZvb3RlciI6IlByaXNtZS5haSDCtyBTaGFyZVBvaW50IE5leHQgY29ubmVjdG9yIn0sImZyIjp7ImZvb3RlciI6IlByaXNtZS5haSDCtyBDb25uZWN0ZXVyIFNoYXJlUG9pbnQgTmV4dCJ9fSwiY292ZXIiOnsiZW4iOnsiZXllYnJvdyI6IlByaXNtZS5haSDCtyBDb25uZWN0b3JzIiwidGl0bGUiOiJTaGFyZVBvaW50IGluIFByaXNtZS5haSIsInN1YiI6IkZyb20gY2hhdCB0byBhZG1pbmlzdHJhdGlvbjogZm91ciBsZXZlbHMgb2YgdXNlLiIsInBpbGwiOiJTYW5kYm94IMK3IGd1aWRlZCBkZW1vIn0sImZyIjp7ImV5ZWJyb3ciOiJQcmlzbWUuYWkgwrcgQ29ubmVjdGV1cnMiLCJ0aXRsZSI6IlNoYXJlUG9pbnQgZGFucyBQcmlzbWUuYWkiLCJzdWIiOiJEdSBjaGF0IMOgIGwnYWRtaW5pc3RyYXRpb24sIHF1YXRyZSBuaXZlYXV4IGQndXNhZ2UuIiwicGlsbCI6IlNhbmRib3ggwrcgZMOpbW8gZ3VpZMOpZSJ9fSwidmlkZW8iOnsic3JjIjoibWVkaWEvdmlkZW8ubXA0Iiwid2lkdGgiOjE5MjAsImhlaWdodCI6MTIwMCwiZHVyYXRpb24iOjIyMS45NX0sInJhdGVzIjpbMSwwLjc1LDEuMjUsMS41XSwidm9pY2VzIjp7ImVuIjp7IjEiOiJtZWRpYS92b2ljZV9lbi5tcDMiLCIwLjc1IjoibWVkaWEvdm9pY2VfZW5fMC43NS5tcDMiLCIxLjI1IjoibWVkaWEvdm9pY2VfZW5fMS4yNS5tcDMiLCIxLjUiOiJtZWRpYS92b2ljZV9lbl8xLjUubXAzIn0sImZyIjp7IjEiOiJtZWRpYS92b2ljZV9mci5tcDMiLCIwLjc1IjoibWVkaWEvdm9pY2VfZnJfMC43NS5tcDMiLCIxLjI1IjoibWVkaWEvdm9pY2VfZnJfMS4yNS5tcDMiLCIxLjUiOiJtZWRpYS92b2ljZV9mcl8xLjUubXAzIn19LCJzdWJ0aXRsZXMiOnsiZW4iOiJ0cmFja3Mvc3Vic19lbi5qc29uIiwiZnIiOiJ0cmFja3Mvc3Vic19mci5qc29uIn0sImNoYXB0ZXJzIjp7ImVuIjoidHJhY2tzL2NoYXB0ZXJzX2VuLmpzb24iLCJmciI6InRyYWNrcy9jaGFwdGVyc19mci5qc29uIn0sImJyYW5kIjp7ImxvZ29fY29sb3IiOiJicmFuZC9sb2dvLWNvbG9yLnBuZyIsImxvZ29fd2hpdGUiOiJicmFuZC9sb2dvLXdoaXRlLnBuZyIsIm1hcmtfbGlnaHRfYmx1ZSI6ImJyYW5kL21hcmstbGlnaHQtYmx1ZS5wbmciLCJ0aXRsZV9mb250IjoiYnJhbmQvUGxheS1Cb2xkLnR0ZiIsImNvbG9ycyI6eyJjb3Zlcl9iZyI6IiMxRTUwRDIiLCJjb3Zlcl9tYXJrIjoiIzREOEJFRSIsImNvdmVyX2V5ZWJyb3ciOiIjOURCNEVFIiwiY292ZXJfc3VidGl0bGUiOiIjQzlEOEY3IiwiY292ZXJfcGlsbF9iZyI6IiNGRkZGRkYiLCJjb3Zlcl9waWxsX3RleHQiOiIjMjA1QkUxIiwicGFnZV9iZyI6IiNGRkZGRkYiLCJzdXJmYWNlIjoiI0Y4RkFGRCIsInN1cmZhY2VfYmx1ZSI6IiNFN0VFRkQiLCJib3JkZXIiOiIjRTRFN0VEIiwicHJpbWFyeSI6IiMyMDVCRTEiLCJpbmsiOiIjMTUxQjI0IiwiYm9keSI6IiM1MzVBNkEiLCJtdXRlZCI6IiM2OTcwN0YiLCJhY2NlbnRfb3JhbmdlIjoiI0U5NzEzMiIsImFjY2VudF9ncmVlbiI6IiMxRjhBNEMiLCJhY2NlbnRfdGVhbCI6IiMwRTdDNjYiLCJhY2NlbnRfcHVycGxlIjoiIzZBM0RCQiIsImFjY2VudF9yZWQiOiIjQzAzOTJCIn19LCJ0cmFja3MiOnsiZW4iOnsiY2hhcHRlcnMiOlt7InN0YXJ0IjowLjAsImVuZCI6Ni4zNCwia2luZCI6ImNvdmVyIiwic3RlcCI6MCwic3RlcHMiOjE0LCJzZWN0aW9uIjoiUHJpc21lLmFpIMK3IENvbm5lY3RvcnMiLCJ0aXRsZSI6IlNoYXJlUG9pbnQgaW4gUHJpc21lLmFpIiwic3ViIjoiRnJvbSBjaGF0IHRvIGFkbWluaXN0cmF0aW9uOiBmb3VyIGxldmVscyBvZiB1c2UuIiwidXJsIjoiIn0seyJzdGFydCI6Ni4zNCwiZW5kIjozOC4zOSwia2luZCI6InN0ZXAiLCJzdGVwIjoxLCJzdGVwcyI6MTQsInNlY3Rpb24iOiJDaGF0IiwidGl0bGUiOiJDb25uZWN0IHlvdXIgYWNjb3VudCBmcm9tIHRoZSBjaGF0Iiwic3ViIjoiQW4gYWdlbnQgd2l0aCB0aGUgU2hhcmVQb2ludCBjb25uZWN0b3Igb2ZmZXJzIE9BdXRoIHNpZ24taW4sIHRoZW4gYW5zd2VycyB3aXRoIHlvdXIgZmlsZXMuIiwidXJsIjoic2FuZGJveC5wcmlzbWUuYWkvYy9zaGFyZXBvaW50In0seyJzdGFydCI6MzguMzksImVuZCI6NTQuNjYsImtpbmQiOiJzdGVwIiwic3RlcCI6Miwic3RlcHMiOjE0LCJzZWN0aW9uIjoiQWdlbnQgQ3JlYXRvciIsInRpdGxlIjoiQ3JlYXRlIGFuIGFnZW50Iiwic3ViIjoiQ3JlYXRpb24gd2l6YXJkOiB0eXBlLCBuYW1lLCBtb2RlbCwgaW5zdHJ1Y3Rpb25zLiIsInVybCI6InNhbmRib3gucHJpc21lLmFpL2FwcHMvYWdlbnQtZmFjdG9yeSJ9LHsic3RhcnQiOjU0LjY2LCJlbmQiOjY4LjQ1LCJraW5kIjoic3RlcCIsInN0ZXAiOjMsInN0ZXBzIjoxNCwic2VjdGlvbiI6IkFnZW50IENyZWF0b3IiLCJ0aXRsZSI6IkFkZCB0aGUgU2hhcmVQb2ludCBOZXh0IGNhcGFiaWxpdHkiLCJzdWIiOiJPbmUgY2xpY2sgaW4gdGhlIGNhcGFiaWxpdHkgY2F0YWxvZywgbm90aGluZyB0byBjb25maWd1cmUuIiwidXJsIjoic2FuZGJveC5wcmlzbWUuYWkvYXBwcy9hZ2VudC1mYWN0b3J5In0seyJzdGFydCI6NjguNDUsImVuZCI6ODUuOTcsImtpbmQiOiJzdGVwIiwic3RlcCI6NCwic3RlcHMiOjE0LCJzZWN0aW9uIjoiQWdlbnQgQ3JlYXRvciIsInRpdGxlIjoiSXQgd29ya3MgcmlnaHQgYXdheSIsInN1YiI6IkluIHRoZSBQbGF5Z3JvdW5kLCB0aGUgYWdlbnQgY29ubmVjdHMgYW5kIGxpc3RzIHRoZSBTaGFyZVBvaW50IHNpdGVzLiIsInVybCI6InNhbmRib3gucHJpc21lLmFpL2FwcHMvYWdlbnQtZmFjdG9yeSJ9LHsic3RhcnQiOjg1Ljk3LCJlbmQiOjkzLjM3LCJraW5kIjoic3RlcCIsInN0ZXAiOjUsInN0ZXBzIjoxNCwic2VjdGlvbiI6IkFnZW50IENyZWF0b3IiLCJ0aXRsZSI6IlJlbW92ZSB0aGUgY2FwYWJpbGl0eSIsInN1YiI6IlRyYXNoLCBjb25maXJtOiB0aGUgYWdlbnQgbm8gbG9uZ2VyIGhhcyBhY2Nlc3MgdG8gU2hhcmVQb2ludC4iLCJ1cmwiOiJzYW5kYm94LnByaXNtZS5haS9hcHBzL2FnZW50LWZhY3RvcnkifSx7InN0YXJ0Ijo5My4zNywiZW5kIjoxMDYuMTUsImtpbmQiOiJzdGVwIiwic3RlcCI6Niwic3RlcHMiOjE0LCJzZWN0aW9uIjoiQWR2YW5jZWQgQWdlbnQgQ3JlYXRvciIsInRpdGxlIjoiV2h5IGdvIHRocm91Z2ggdGhlIGJ1aWxkZXI/Iiwic3ViIjoiQSBkZWRpY2F0ZWQgd29ya3NwYWNlIGdpdmVzIGNvbnRyb2wgb3ZlciBhdXRoZW50aWNhdGlvbjogc2VydmljZSB0b2tlbiwgeW91ciBvd24gRW50cmEgYXBwLCBhdXRob3JpemVkIGFnZW50cy4iLCJ1cmwiOiJzYW5kYm94LnByaXNtZS5haS9idWlsZGVyIn0seyJzdGFydCI6MTA2LjE1LCJlbmQiOjExNS4yMiwia2luZCI6InN0ZXAiLCJzdGVwIjo3LCJzdGVwcyI6MTQsInNlY3Rpb24iOiJBZHZhbmNlZCBBZ2VudCBDcmVhdG9yIiwidGl0bGUiOiJJbnN0YWxsIFNoYXJlUG9pbnQgTmV4dCIsInN1YiI6IlRoZSB3b3Jrc3BhY2UgQXBwIFN0b3JlLCB0aGVuIHRoZSBjb25uZWN0b3IncyBjb25maWd1cmF0aW9uIHBhZ2UuIiwidXJsIjoic2FuZGJveC5wcmlzbWUuYWkvYnVpbGRlciJ9LHsic3RhcnQiOjExNS4yMiwiZW5kIjoxMzAuNDQsImtpbmQiOiJzdGVwIiwic3RlcCI6OCwic3RlcHMiOjE0LCJzZWN0aW9uIjoiQWR2YW5jZWQgQWdlbnQgQ3JlYXRvciIsInRpdGxlIjoiQ29ubmVjdGlvbiBtb2RlcyIsInN1YiI6IlBsYXRmb3JtIE9BdXRoIGNsaWVudCwgeW91ciBvd24gRW50cmEgYXBwLCBjbGllbnQgY3JlZGVudGlhbHMgKHNlcnZpY2UgdG9rZW4pIG9yIGFjY2VzcyB0b2tlbi4iLCJ1cmwiOiJzYW5kYm94LnByaXNtZS5haS9idWlsZGVyIn0seyJzdGFydCI6MTMwLjQ0LCJlbmQiOjE0OC4xNiwia2luZCI6InN0ZXAiLCJzdGVwIjo5LCJzdGVwcyI6MTQsInNlY3Rpb24iOiJBZHZhbmNlZCBBZ2VudCBDcmVhdG9yIiwidGl0bGUiOiJNQ1AgYW5kIGF1dGhvcml6ZWQgYWdlbnRzIiwic3ViIjoiVGhlIE1DUCBlbmRwb2ludCBpcyBleHBvc2VkOyBvbmx5IGNoZWNrZWQgYWdlbnRzIG1heSBjYWxsIGl0LiBUaGVuIMKrIEluc3RhbGwgY2FwYWJpbGl0eSDCuy4iLCJ1cmwiOiJzYW5kYm94LnByaXNtZS5haS9idWlsZGVyIn0seyJzdGFydCI6MTQ4LjE2LCJlbmQiOjE2NC40OCwia2luZCI6InN0ZXAiLCJzdGVwIjoxMCwic3RlcHMiOjE0LCJzZWN0aW9uIjoiQWR2YW5jZWQgQWdlbnQgQ3JlYXRvciIsInRpdGxlIjoiQmFjayBpbiBBZ2VudCBDcmVhdG9yIiwic3ViIjoiVGhlIGNhcGFiaWxpdHkgYXBwZWFycyBvbiB0aGUgYXV0aG9yaXplZCBhZ2VudCwgd2hpY2ggYW5zd2VycyByaWdodCBhd2F5LiIsInVybCI6InNhbmRib3gucHJpc21lLmFpL2FwcHMvYWdlbnQtZmFjdG9yeSJ9LHsic3RhcnQiOjE2NC40OCwiZW5kIjoxNzUuMzgsImtpbmQiOiJzdGVwIiwic3RlcCI6MTEsInN0ZXBzIjoxNCwic2VjdGlvbiI6IkJ1aWxkZXIiLCJ0aXRsZSI6IkNvbm5lY3QgZnJvbSB0aGUgd29ya3NwYWNlIiwic3ViIjoiVGhlIGNvbm5lY3RlZCBhY2NvdW50IHNlcnZlcyBhdXRvbWF0aW9ucyBhbmQgc2NoZWR1bGVkIHJ1bnMuIiwidXJsIjoic2FuZGJveC5wcmlzbWUuYWkvYnVpbGRlciJ9LHsic3RhcnQiOjE3NS4zOCwiZW5kIjoxOTcuMzksImtpbmQiOiJzdGVwIiwic3RlcCI6MTIsInN0ZXBzIjoxNCwic2VjdGlvbiI6IkJ1aWxkZXIiLCJ0aXRsZSI6IkEgU2hhcmVQb2ludCBhdXRvbWF0aW9uIiwic3ViIjoiRXZlcnkgR3JhcGggb3BlcmF0aW9uIGJlY29tZXMgYW4gaW5zdHJ1Y3Rpb246IGhlcmUgc2VhcmNoU2l0ZXMgd2l0aCDCqyAqIMK7LiIsInVybCI6InNhbmRib3gucHJpc21lLmFpL2J1aWxkZXIifSx7InN0YXJ0IjoxOTcuMzksImVuZCI6MjA0LjcyLCJraW5kIjoic3RlcCIsInN0ZXAiOjEzLCJzdGVwcyI6MTQsInNlY3Rpb24iOiJCdWlsZGVyIiwidGl0bGUiOiJSdW4iLCJzdWIiOiJzZWFyY2hTaXRlcyB0aGVuIGEgbG9vcDogdGhlIGxpc3Qgb2Ygc2l0ZSBuYW1lcy4iLCJ1cmwiOiJzYW5kYm94LnByaXNtZS5haS9idWlsZGVyIn0seyJzdGFydCI6MjA0LjcyLCJlbmQiOjIyMS45NSwia2luZCI6InN0ZXAiLCJzdGVwIjoxNCwic3RlcHMiOjE0LCJzZWN0aW9uIjoiQWRtaW5pc3RyYXRvciIsInRpdGxlIjoiVGhlIHBsYXRmb3JtIE9BdXRoIGNsaWVudCIsInN1YiI6IkluIHRoZSBjb25uZWN0b3IncyB3b3Jrc3BhY2UsIHRoZSBhZG1pbmlzdHJhdG9yIGRlY2xhcmVzIG9uY2UgdGhlIEVudHJhIGNsaWVudCBzaGFyZWQgYnkgZXZlcnlvbmUuIiwidXJsIjoic2FuZGJveC5wcmlzbWUuYWkvYXBwcy9zaGFyZXBvaW50LW5leHQifV0sInN1YnMiOlt7InN0YXJ0IjowLjQsImVuZCI6NS42OCwidGV4dCI6IlNoYXJlUG9pbnQgaW4gUHJpc21lIGRvdCBBIEkuIEknbGwgc2hvdyB5b3UgZm91ciB3YXlzIHRvIHVzZSBpdCwgZnJvbSB0aGUgc2ltcGxlc3QgdG8gdGhlIG1vc3QgYWR2YW5jZWQuIn0seyJzdGFydCI6Ni4zNiwiZW5kIjoxMC4xNCwidGV4dCI6IkxldmVsIG9uZTogdGhlIGNoYXQuIEkgb3BlbiBhbiBhZ2VudCB0aGF0IGhhcyB0aGUgU2hhcmVQb2ludCBjb25uZWN0b3IuIn0seyJzdGFydCI6MTAuNDQsImVuZCI6MTMuNywidGV4dCI6IkluIHRoZSBUb29scyBtZW51LCBTaGFyZVBvaW50IHNheXMgYSBjb25uZWN0aW9uIGlzIHJlcXVpcmVkLiJ9LHsic3RhcnQiOjE1LjA5LCJlbmQiOjE3LjM3LCJ0ZXh0IjoiSSBhc2sgaXQgZm9yIHRoZSBmaWxlcyBpbiBteSBPbmVEcml2ZS4ifSx7InN0YXJ0IjoxOS4xNywiZW5kIjoyMi4yMywidGV4dCI6IlRoZSBhZ2VudCBvZmZlcnMgdG8gY29ubmVjdCBteSBhY2NvdW50LiBJIGNsaWNrIENvbm5lY3QuIn0seyJzdGFydCI6MjMuMzQsImVuZCI6MjcuMTEsInRleHQiOiJNaWNyb3NvZnQgY29uZmlybXMgdGhlIGNvbm5lY3Rpb24sIGFuZCB0aGUgYWdlbnQgY2FycmllcyBvbiBieSBpdHNlbGYuIn0seyJzdGFydCI6MjguOTEsImVuZCI6MzAuODYsInRleHQiOiJIZXJlIGlzIHRoZSBjb250ZW50IG9mIG15IE9uZURyaXZlLiJ9LHsic3RhcnQiOjMyLjk2LCJlbmQiOjM3LjQ4LCJ0ZXh0IjoiVGhlIFRvb2xzIG1lbnUgbm93IHNob3dzIHRoZSBjb25uZWN0ZWQgYWNjb3VudCwgd2hpY2ggSSBjYW4gZGlzY29ubmVjdCBhdCBhbnkgdGltZS4ifSx7InN0YXJ0IjozOC40NCwiZW5kIjo0MS4yLCJ0ZXh0IjoiTGV2ZWwgdHdvOiBBZ2VudCBDcmVhdG9yLiBJIGNyZWF0ZSBhIG5ldyBhZ2VudC4ifSx7InN0YXJ0Ijo0My40MSwiZW5kIjo0NS44NiwidGV4dCI6IkkgcGljayB0aGUgQXNzaXN0YW50IHR5cGUsIHdoaWNoIGNhbiB1c2UgdG9vbHMuIn0seyJzdGFydCI6NDcuMjUsImVuZCI6NDkuMTUsInRleHQiOiJJIGdpdmUgaXQgYSBuYW1lLCB0aGVuIGluc3RydWN0aW9ucy4ifSx7InN0YXJ0Ijo1MS4yNSwiZW5kIjo1Mi43NiwidGV4dCI6IkFuZCBJIGNyZWF0ZSB0aGUgYWdlbnQuIn0seyJzdGFydCI6NTQuOTMsImVuZCI6NTguNzEsInRleHQiOiJJbiB0aGUgQ2FwYWJpbGl0aWVzIHRhYiwgSSBvcGVuIHRoZSBjYXRhbG9nIGFuZCBzZWFyY2ggZm9yIFNoYXJlUG9pbnQuIn0seyJzdGFydCI6NTkuNjEsImVuZCI6NjIuMzUsInRleHQiOiJUaGUgZm9ybSBpcyBhbHJlYWR5IGZpbGxlZCBpbjogSSBqdXN0IGNsaWNrIEFkZC4ifSx7InN0YXJ0Ijo2NC4zOCwiZW5kIjo2NS43MiwidGV4dCI6IlRoZSBjYXBhYmlsaXR5IGlzIGFkZGVkLiJ9LHsic3RhcnQiOjY4LjQ4LCJlbmQiOjcwLjU4LCJ0ZXh0IjoiSSB0ZXN0IGl0IHJpZ2h0IGF3YXkgaW4gdGhlIFBsYXlncm91bmQuIn0seyJzdGFydCI6NzIuMzgsImVuZCI6NzQuNjksInRleHQiOiJJIGFzayB3aGljaCBTaGFyZVBvaW50IHNpdGVzIEkgY2FuIGFjY2Vzcy4ifSx7InN0YXJ0Ijo3Ni45MiwiZW5kIjo4MC41NSwidGV4dCI6IlRoZSBjb25uZWN0aW9uIGJlbG9uZ3MgdG8gZWFjaCBhZ2VudCwgc28gSSBjb25uZWN0IGFnYWluLCBpbiBvbmUgY2xpY2suIn0seyJzdGFydCI6ODEuNzUsImVuZCI6ODQuMDcsInRleHQiOiJUaGUgYWdlbnQgbGlzdHMgdGhlIHNpdGVzIEkgaGF2ZSBhY2Nlc3MgdG8uIn0seyJzdGFydCI6ODYuNDcsImVuZCI6ODguNzIsInRleHQiOiJUbyByZW1vdmUgYWNjZXNzLCBJIGRlbGV0ZSB0aGUgY2FwYWJpbGl0eS4ifSx7InN0YXJ0Ijo5MC40NCwiZW5kIjo5Mi40NiwidGV4dCI6IkkgY2xpY2sgdGhlIHRyYXNoIGljb24sIGFuZCBjb25maXJtLiJ9LHsic3RhcnQiOjkzLjQyLCJlbmQiOjk5LjgxLCJ0ZXh0IjoiTGV2ZWwgdGhyZWU6IHRoZSBidWlsZGVyLiBZb3UgZ28gdGhlcmUgd2hlbiB5b3UgbmVlZCBhIHNlcnZpY2UgdG9rZW4sIGZvciBqb2JzIHdpdGhvdXQgYSB1c2VyLCBvciB5b3VyIG93biBFbnRyYSBhcHBsaWNhdGlvbi4ifSx7InN0YXJ0IjoxMDIuNjIsImVuZCI6MTA1LjI1LCJ0ZXh0IjoiSSBjcmVhdGUgYSB3b3Jrc3BhY2UgY2FsbGVkIETDqW1vIFNoYXJlUG9pbnQuIn0seyJzdGFydCI6MTA3LjE3LCJlbmQiOjExMC41NywidGV4dCI6IkZyb20gSW1wb3J0cywgSSBvcGVuIHRoZSBBcHAgU3RvcmUgYW5kIGluc3RhbGwgU2hhcmVQb2ludCBOZXh0LiJ9LHsic3RhcnQiOjExMS41NCwiZW5kIjoxMTMuMzIsInRleHQiOiJIZXJlIGlzIGl0cyBjb25maWd1cmF0aW9uIHBhZ2UuIn0seyJzdGFydCI6MTE1LjcyLCJlbmQiOjExNy41NywidGV4dCI6IlRoZXJlIGFyZSBmb3VyIGNvbm5lY3Rpb24gbW9kZXMuIn0seyJzdGFydCI6MTE3LjgyLCJlbmQiOjEyMC4xOSwidGV4dCI6Ik9BdXRoIHdpdGggeW91ciBvd24gRW50cmEgYXBwbGljYXRpb24sIn0seyJzdGFydCI6MTIwLjQ5LCJlbmQiOjEyNC44OSwidGV4dCI6ImNsaWVudCBjcmVkZW50aWFscywgd2hpY2ggaXMgdGhlIHNlcnZpY2UgdG9rZW4sIG9yIGEgZGlyZWN0IGFjY2VzcyB0b2tlbi4ifSx7InN0YXJ0IjoxMjUuMTksImVuZCI6MTI4LjU0LCJ0ZXh0IjoiSSBrZWVwIHRoZSBwbGF0Zm9ybSBPQXV0aCBjbGllbnQsIHdpdGhvdXQgZmlsbGluZyBpbiBhbnl0aGluZy4ifSx7InN0YXJ0IjoxMzEuNjQsImVuZCI6MTM0LjgyLCJ0ZXh0IjoiVGhlIGNvbm5lY3RvciBleHBvc2VzIGFuIE1DUCBzZXJ2ZXI6IGhlcmUgaXMgaXRzIGFkZHJlc3MuIn0seyJzdGFydCI6MTM2LjI5LCJlbmQiOjEzOS4zNSwidGV4dCI6IkZvciBzZWN1cml0eSwgb25seSB0aGUgYWdlbnRzIGNoZWNrZWQgaGVyZSBjYW4gY2FsbCBpdC4ifSx7InN0YXJ0IjoxNDEuMDIsImVuZCI6MTQzLjEzLCJ0ZXh0IjoiSSBhdXRob3JpemUgdGhlIGFnZW50IE1lcyBkb2N1bWVudHMuIn0seyJzdGFydCI6MTQ0LjkzLCJlbmQiOjE0Ny4yNiwidGV4dCI6IkFuZCBJIGluc3RhbGwgdGhlIGNhcGFiaWxpdHkgb24gdGhpcyBhZ2VudC4ifSx7InN0YXJ0IjoxNDguNjYsImVuZCI6MTUxLjQzLCJ0ZXh0IjoiQmFjayBpbiBBZ2VudCBDcmVhdG9yLCBJIG9wZW4gdGhlIGFnZW50LiJ9LHsic3RhcnQiOjE1Mi4zMywiZW5kIjoxNTYuMTMsInRleHQiOiJUaGUgU2hhcmVQb2ludCBOZXh0IGNhcGFiaWxpdHkgaXMgdGhlcmUsIGluc3RhbGxlZCBmcm9tIHRoZSBidWlsZGVyLiJ9LHsic3RhcnQiOjE1Ny41NSwiZW5kIjoxNTkuMDgsInRleHQiOiJJIHRlc3QgaXQgaW4gdGhlIFBsYXlncm91bmQuIn0seyJzdGFydCI6MTYwLjg4LCJlbmQiOjE2My4zOCwidGV4dCI6Ikl0IGFuc3dlcnMgcmlnaHQgYXdheSwgd2l0aCB0aGUgbGlzdCBvZiBzaXRlcy4ifSx7InN0YXJ0IjoxNjQuNTgsImVuZCI6MTY4LjY2LCJ0ZXh0IjoiTGV2ZWwgZm91cjogYXV0b21hdGlvbnMuIEluIHRoZSB3b3Jrc3BhY2UsIEkgY29ubmVjdCBteSBNaWNyb3NvZnQgYWNjb3VudC4ifSx7InN0YXJ0IjoxNzAuMjIsImVuZCI6MTczLjQ2LCJ0ZXh0IjoiSXQncyBjb25uZWN0ZWQ6IHRoaXMgdG9rZW4gd2lsbCBhbHNvIHNlcnZlIHNjaGVkdWxlZCBydW5zLiJ9LHsic3RhcnQiOjE3NS40OCwiZW5kIjoxNzYuOTYsInRleHQiOiJJIGNyZWF0ZSBhbiBhdXRvbWF0aW9uLiJ9LHsic3RhcnQiOjE3Ny40MSwiZW5kIjoxODAuNywidGV4dCI6IkV2ZXJ5IFNoYXJlUG9pbnQgb3BlcmF0aW9uIGlzIGF2YWlsYWJsZSBhcyBhbiBpbnN0cnVjdGlvbi4ifSx7InN0YXJ0IjoxODIuNzksImVuZCI6MTg0LjMxLCJ0ZXh0IjoiSSBzZWFyY2ggZm9yIHNlYXJjaFNpdGVzLiJ9LHsic3RhcnQiOjE4NC43LCJlbmQiOjE4Ni41MywidGV4dCI6IkkgYWRkIGl0LCB0aGVuIHN3aXRjaCB0byBZQU1MLiJ9LHsic3RhcnQiOjE4Ni44MywiZW5kIjoxOTEuNDUsInRleHQiOiJJIHBhc3RlIHRoZSBibG9jazogc2VhcmNoU2l0ZXMgd2l0aCBhIHN0YXIsIHRoZW4gYSBsb29wIHRoYXQgY29sbGVjdHMgZWFjaCBzaXRlJ3MgbmFtZS4ifSx7InN0YXJ0IjoxOTMuMzQsImVuZCI6MTk1LjI1LCJ0ZXh0IjoiSSBzYXZlLCBhbmQgZ28gYmFjayB0byB0aGUgZ3JhcGggdmlldy4ifSx7InN0YXJ0IjoxOTguMjUsImVuZCI6MTk5LjQ1LCJ0ZXh0IjoiSSBydW4gdGhlIGF1dG9tYXRpb24uIn0seyJzdGFydCI6MjAwLjc4LCJlbmQiOjIwMi41MSwidGV4dCI6IkFuZCBoZXJlIGlzIHRoZSBsaXN0IG9mIHNpdGVzLiJ9LHsic3RhcnQiOjIwNS4yMiwiZW5kIjoyMDkuNTQsInRleHQiOiJGaW5hbGx5LCB0aGUgYWRtaW5pc3RyYXRvciBzaWRlOiBJIG9wZW4gdGhlIGNvbm5lY3RvcidzIHdvcmtzcGFjZS4ifSx7InN0YXJ0IjoyMDkuNzksImVuZCI6MjE1LjM2LCJ0ZXh0IjoiVGhpcyBpcyB3aGVyZSB0aGUgYWRtaW5pc3RyYXRvciBkZWNsYXJlcywgb25jZSBhbmQgZm9yIGFsbCwgdGhlIHBsYXRmb3JtIE9BdXRoIGNsaWVudCB1c2VkIGJ5IGV2ZXJ5b25lLiJ9LHsic3RhcnQiOjIxNi41NiwiZW5kIjoyMjEuMDUsInRleHQiOiJBbmQgdGhpcyBidXR0b24gcHVibGlzaGVzIHRoZSBjb25uZWN0b3IgdG8gdGhlIG9yZ2FuaXphdGlvbidzIGNhcGFiaWxpdHkgY2F0YWxvZy4ifV19LCJmciI6eyJjaGFwdGVycyI6W3sic3RhcnQiOjAuMCwiZW5kIjo2LjM0LCJraW5kIjoiY292ZXIiLCJzdGVwIjowLCJzdGVwcyI6MTQsInNlY3Rpb24iOiJQcmlzbWUuYWkgwrcgQ29ubmVjdGV1cnMiLCJ0aXRsZSI6IlNoYXJlUG9pbnQgZGFucyBQcmlzbWUuYWkiLCJzdWIiOiJEdSBjaGF0IMOgIGwnYWRtaW5pc3RyYXRpb24sIHF1YXRyZSBuaXZlYXV4IGQndXNhZ2UuIiwidXJsIjoiIn0seyJzdGFydCI6Ni4zNCwiZW5kIjozOC4zOSwia2luZCI6InN0ZXAiLCJzdGVwIjoxLCJzdGVwcyI6MTQsInNlY3Rpb24iOiJVc2FnZSBwYXIgY2hhdCIsInRpdGxlIjoiQ29ubmVjdGVyIHNvbiBjb21wdGUgZGVwdWlzIGxlIGNoYXQiLCJzdWIiOiJVbiBhZ2VudCBkb3TDqSBkdSBjb25uZWN0ZXVyIFNoYXJlUG9pbnQgcHJvcG9zZSBsYSBjb25uZXhpb24gT0F1dGgsIHB1aXMgcsOpcG9uZCBhdmVjIHZvcyBmaWNoaWVycy4iLCJ1cmwiOiJzYW5kYm94LnByaXNtZS5haS9jL3NoYXJlcG9pbnQifSx7InN0YXJ0IjozOC4zOSwiZW5kIjo1NC42Niwia2luZCI6InN0ZXAiLCJzdGVwIjoyLCJzdGVwcyI6MTQsInNlY3Rpb24iOiJBZ2VudCBDcmVhdG9yIiwidGl0bGUiOiJDcsOpZXIgdW4gYWdlbnQiLCJzdWIiOiJBc3Npc3RhbnQgZGUgY3LDqWF0aW9uIDogdHlwZSwgbm9tLCBtb2TDqGxlLCBpbnN0cnVjdGlvbnMuIiwidXJsIjoic2FuZGJveC5wcmlzbWUuYWkvYXBwcy9hZ2VudC1mYWN0b3J5In0seyJzdGFydCI6NTQuNjYsImVuZCI6NjguNDUsImtpbmQiOiJzdGVwIiwic3RlcCI6Mywic3RlcHMiOjE0LCJzZWN0aW9uIjoiQWdlbnQgQ3JlYXRvciIsInRpdGxlIjoiQWpvdXRlciBsYSBjYXBhY2l0w6kgU2hhcmVQb2ludCBOZXh0Iiwic3ViIjoiVW4gY2xpYyBkYW5zIGxlIGNhdGFsb2d1ZSBkZSBjYXBhY2l0w6lzLCBhdWN1bmUgY29uZmlndXJhdGlvbi4iLCJ1cmwiOiJzYW5kYm94LnByaXNtZS5haS9hcHBzL2FnZW50LWZhY3RvcnkifSx7InN0YXJ0Ijo2OC40NSwiZW5kIjo4NS45Nywia2luZCI6InN0ZXAiLCJzdGVwIjo0LCJzdGVwcyI6MTQsInNlY3Rpb24iOiJBZ2VudCBDcmVhdG9yIiwidGl0bGUiOiLDh2EgbWFyY2hlIHRvdXQgZGUgc3VpdGUiLCJzdWIiOiJEYW5zIGxlIFBsYXlncm91bmQsIGwnYWdlbnQgc2UgY29ubmVjdGUgZXQgbGlzdGUgbGVzIHNpdGVzIFNoYXJlUG9pbnQuIiwidXJsIjoic2FuZGJveC5wcmlzbWUuYWkvYXBwcy9hZ2VudC1mYWN0b3J5In0seyJzdGFydCI6ODUuOTcsImVuZCI6OTMuMzcsImtpbmQiOiJzdGVwIiwic3RlcCI6NSwic3RlcHMiOjE0LCJzZWN0aW9uIjoiQWdlbnQgQ3JlYXRvciIsInRpdGxlIjoiUmV0aXJlciBsYSBjYXBhY2l0w6kiLCJzdWIiOiJDb3JiZWlsbGUsIGNvbmZpcm1hdGlvbiA6IGwnYWdlbnQgbidhIHBsdXMgYWNjw6hzIMOgIFNoYXJlUG9pbnQuIiwidXJsIjoic2FuZGJveC5wcmlzbWUuYWkvYXBwcy9hZ2VudC1mYWN0b3J5In0seyJzdGFydCI6OTMuMzcsImVuZCI6MTA2LjE1LCJraW5kIjoic3RlcCIsInN0ZXAiOjYsInN0ZXBzIjoxNCwic2VjdGlvbiI6IkFnZW50IENyZWF0b3IgYXZhbmPDqSIsInRpdGxlIjoiUG91cnF1b2kgcGFzc2VyIHBhciBsZSBidWlsZGVyID8iLCJzdWIiOiJVbiB3b3Jrc3BhY2UgZMOpZGnDqSBkb25uZSBsYSBtYWluIHN1ciBsJ2F1dGhlbnRpZmljYXRpb24gOiBzZXJ2aWNlIHRva2VuLCBhcHAgRW50cmEgcHJvcHJlLCBhZ2VudHMgYXV0b3Jpc8Opcy4iLCJ1cmwiOiJzYW5kYm94LnByaXNtZS5haS9idWlsZGVyIn0seyJzdGFydCI6MTA2LjE1LCJlbmQiOjExNS4yMiwia2luZCI6InN0ZXAiLCJzdGVwIjo3LCJzdGVwcyI6MTQsInNlY3Rpb24iOiJBZ2VudCBDcmVhdG9yIGF2YW5jw6kiLCJ0aXRsZSI6Ikluc3RhbGxlciBTaGFyZVBvaW50IE5leHQiLCJzdWIiOiJBcHAgU3RvcmUgZHUgd29ya3NwYWNlLCBwdWlzIGxhIHBhZ2UgZGUgY29uZmlndXJhdGlvbiBkdSBjb25uZWN0ZXVyLiIsInVybCI6InNhbmRib3gucHJpc21lLmFpL2J1aWxkZXIifSx7InN0YXJ0IjoxMTUuMjIsImVuZCI6MTMwLjQ0LCJraW5kIjoic3RlcCIsInN0ZXAiOjgsInN0ZXBzIjoxNCwic2VjdGlvbiI6IkFnZW50IENyZWF0b3IgYXZhbmPDqSIsInRpdGxlIjoiTGVzIG1vZGVzIGRlIGNvbm5leGlvbiIsInN1YiI6IkNsaWVudCBPQXV0aCBkZSBsYSBwbGF0ZWZvcm1lLCB2b3RyZSBhcHAgRW50cmEsIGNsaWVudCBjcmVkZW50aWFscyAoc2VydmljZSB0b2tlbikgb3UgYWNjZXNzIHRva2VuLiIsInVybCI6InNhbmRib3gucHJpc21lLmFpL2J1aWxkZXIifSx7InN0YXJ0IjoxMzAuNDQsImVuZCI6MTQ4LjE2LCJraW5kIjoic3RlcCIsInN0ZXAiOjksInN0ZXBzIjoxNCwic2VjdGlvbiI6IkFnZW50IENyZWF0b3IgYXZhbmPDqSIsInRpdGxlIjoiTUNQIGV0IGFnZW50cyBhdXRvcmlzw6lzIiwic3ViIjoiTCdlbmRwb2ludCBNQ1AgZXN0IGV4cG9zw6kgOyBzZXVscyBsZXMgYWdlbnRzIGNvY2jDqXMgcGV1dmVudCBsJ2FwcGVsZXIuIFB1aXMgwqsgSW5zdGFsbGVyIGxhIGNhcGFjaXTDqSDCuy4iLCJ1cmwiOiJzYW5kYm94LnByaXNtZS5haS9idWlsZGVyIn0seyJzdGFydCI6MTQ4LjE2LCJlbmQiOjE2NC40OCwia2luZCI6InN0ZXAiLCJzdGVwIjoxMCwic3RlcHMiOjE0LCJzZWN0aW9uIjoiQWdlbnQgQ3JlYXRvciBhdmFuY8OpIiwidGl0bGUiOiJDw7R0w6kgQWdlbnQgQ3JlYXRvciIsInN1YiI6IkxhIGNhcGFjaXTDqSBhcHBhcmHDrnQgc3VyIGwnYWdlbnQgYXV0b3Jpc8OpLCBxdWkgcsOpcG9uZCBhdXNzaXTDtHQuIiwidXJsIjoic2FuZGJveC5wcmlzbWUuYWkvYXBwcy9hZ2VudC1mYWN0b3J5In0seyJzdGFydCI6MTY0LjQ4LCJlbmQiOjE3NS4zOCwia2luZCI6InN0ZXAiLCJzdGVwIjoxMSwic3RlcHMiOjE0LCJzZWN0aW9uIjoiVXNhZ2UgYnVpbGRlciIsInRpdGxlIjoiU2UgY29ubmVjdGVyIGRlcHVpcyBsZSB3b3Jrc3BhY2UiLCJzdWIiOiJMZSBjb21wdGUgY29ubmVjdMOpIHNlcnQgYXV4IGF1dG9tYXRpc2F0aW9ucyBldCBhdXggZXjDqWN1dGlvbnMgcGxhbmlmacOpZXMuIiwidXJsIjoic2FuZGJveC5wcmlzbWUuYWkvYnVpbGRlciJ9LHsic3RhcnQiOjE3NS4zOCwiZW5kIjoxOTcuMzksImtpbmQiOiJzdGVwIiwic3RlcCI6MTIsInN0ZXBzIjoxNCwic2VjdGlvbiI6IlVzYWdlIGJ1aWxkZXIiLCJ0aXRsZSI6IlVuZSBhdXRvbWF0aXNhdGlvbiBTaGFyZVBvaW50Iiwic3ViIjoiVG91dGVzIGxlcyBvcMOpcmF0aW9ucyBHcmFwaCBkZXZpZW5uZW50IGRlcyBpbnN0cnVjdGlvbnMgOiBpY2kgc2VhcmNoU2l0ZXMgYXZlYyDCqyAqIMK7LiIsInVybCI6InNhbmRib3gucHJpc21lLmFpL2J1aWxkZXIifSx7InN0YXJ0IjoxOTcuMzksImVuZCI6MjA0LjcyLCJraW5kIjoic3RlcCIsInN0ZXAiOjEzLCJzdGVwcyI6MTQsInNlY3Rpb24iOiJVc2FnZSBidWlsZGVyIiwidGl0bGUiOiJFeMOpY3V0ZXIiLCJzdWIiOiJzZWFyY2hTaXRlcyBwdWlzIHVuZSBib3VjbGUgOiBsYSBsaXN0ZSBkZXMgbm9tcyBkZSBzaXRlcy4iLCJ1cmwiOiJzYW5kYm94LnByaXNtZS5haS9idWlsZGVyIn0seyJzdGFydCI6MjA0LjcyLCJlbmQiOjIyMS45NSwia2luZCI6InN0ZXAiLCJzdGVwIjoxNCwic3RlcHMiOjE0LCJzZWN0aW9uIjoiQWRtaW5pc3RyYXRldXIiLCJ0aXRsZSI6IkxlIGNsaWVudCBPQXV0aCBkZSBsYSBwbGF0ZWZvcm1lIiwic3ViIjoiRGFucyBsZSB3b3Jrc3BhY2UgZHUgY29ubmVjdGV1ciwgbCdhZG1pbmlzdHJhdGV1ciBkw6ljbGFyZSB1bmUgZm9pcyBsZSBjbGllbnQgRW50cmEgcGFydGFnw6kgcGFyIHRvdXMuIiwidXJsIjoic2FuZGJveC5wcmlzbWUuYWkvYXBwcy9zaGFyZXBvaW50LW5leHQifV0sInN1YnMiOlt7InN0YXJ0IjowLjQsImVuZCI6NS44NCwidGV4dCI6IlNoYXJlUG9pbnQgZGFucyBQcmlzbWUgcG9pbnQgQSBJLiBKZSB2b3VzIG1vbnRyZSBxdWF0cmUgZmHDp29ucyBkZSBsJ3V0aWxpc2VyLCBkZSBsYSBwbHVzIHNpbXBsZSDDoCBsYSBwbHVzIGF2YW5jw6llLiJ9LHsic3RhcnQiOjYuMzYsImVuZCI6MTAuMTEsInRleHQiOiJQcmVtaWVyIG5pdmVhdSA6IGxlIGNoYXQuIEonb3V2cmUgdW4gYWdlbnQgcXVpIGRpc3Bvc2UgZHUgY29ubmVjdGV1ciBTaGFyZVBvaW50LiJ9LHsic3RhcnQiOjEwLjQ0LCJlbmQiOjEzLjkzLCJ0ZXh0IjoiRGFucyBsZSBtZW51IE91dGlscywgU2hhcmVQb2ludCBpbmRpcXVlIHF1J3VuZSBjb25uZXhpb24gZXN0IHJlcXVpc2UuIn0seyJzdGFydCI6MTUuMDksImVuZCI6MTcuMzYsInRleHQiOiJKZSBsdWkgZGVtYW5kZSBsZXMgZmljaGllcnMgZGUgbW9uIE9uZURyaXZlLiJ9LHsic3RhcnQiOjE5LjE3LCJlbmQiOjIyLjU4LCJ0ZXh0IjoiTCdhZ2VudCBtZSBwcm9wb3NlIGRlIGNvbm5lY3RlciBtb24gY29tcHRlLiBKZSBjbGlxdWUgc3VyIFNlIGNvbm5lY3Rlci4ifSx7InN0YXJ0IjoyMy4zNCwiZW5kIjoyNi4yNiwidGV4dCI6Ik1pY3Jvc29mdCB2YWxpZGUgbGEgY29ubmV4aW9uLCBldCBsJ2FnZW50IHJlcHJlbmQgdG91dCBzZXVsLiJ9LHsic3RhcnQiOjI4LjkxLCJlbmQiOjMwLjUsInRleHQiOiJWb2lsw6AgbGUgY29udGVudSBkZSBtb24gT25lRHJpdmUuIn0seyJzdGFydCI6MzIuOTYsImVuZCI6MzcuNDksInRleHQiOiJMZSBtZW51IE91dGlscyBhZmZpY2hlIG1haW50ZW5hbnQgbGUgY29tcHRlIGNvbm5lY3TDqSwgcXVlIGplIHBldXggZMOpY29ubmVjdGVyIMOgIHRvdXQgbW9tZW50LiJ9LHsic3RhcnQiOjM4LjQ0LCJlbmQiOjQxLjY5LCJ0ZXh0IjoiRGV1eGnDqG1lIG5pdmVhdSA6IEFnZW50IENyZWF0b3IuIEplIGNyw6llIHVuIG5vdXZlbCBhZ2VudC4ifSx7InN0YXJ0Ijo0My40MSwiZW5kIjo0Ni4zOCwidGV4dCI6IkplIGNob2lzaXMgbGUgdHlwZSBBc3Npc3RhbnQsIHF1aSBzYWl0IHV0aWxpc2VyIGRlcyBvdXRpbHMuIn0seyJzdGFydCI6NDcuMjUsImVuZCI6NDkuNDUsInRleHQiOiJKZSBsdWkgZG9ubmUgdW4gbm9tLCBwdWlzIGRlcyBpbnN0cnVjdGlvbnMuIn0seyJzdGFydCI6NTEuMjUsImVuZCI6NTIuMzQsInRleHQiOiJFdCBqZSBjcsOpZSBsJ2FnZW50LiJ9LHsic3RhcnQiOjU0LjkzLCJlbmQiOjU4LjQ3LCJ0ZXh0IjoiRGFucyBsJ29uZ2xldCBDYXBhY2l0w6lzLCBqJ291dnJlIGxlIGNhdGFsb2d1ZSBldCBqZSBjaGVyY2hlIFNoYXJlUG9pbnQuIn0seyJzdGFydCI6NTkuNjEsImVuZCI6NjIuNTgsInRleHQiOiJMZSBmb3JtdWxhaXJlIGVzdCBkw6lqw6AgcmVtcGxpIDogaWwgc3VmZml0IGRlIGNsaXF1ZXIgc3VyIEFqb3V0ZXIuIn0seyJzdGFydCI6NjQuMzgsImVuZCI6NjYuNTUsInRleHQiOiJMYSBjYXBhY2l0w6kgZXN0IG1haW50ZW5hbnQgYWpvdXTDqWUgw6AgbCdhZ2VudC4ifSx7InN0YXJ0Ijo2OC40OCwiZW5kIjo3MC40OCwidGV4dCI6IkplIHRlc3RlIHRvdXQgZGUgc3VpdGUgZGFucyBsZSBQbGF5Z3JvdW5kLiJ9LHsic3RhcnQiOjcyLjM4LCJlbmQiOjc1LjEyLCJ0ZXh0IjoiSmUgZGVtYW5kZSBxdWVscyBzaXRlcyBTaGFyZVBvaW50IG1lIHNvbnQgYWNjZXNzaWJsZXMuIn0seyJzdGFydCI6NzYuOTIsImVuZCI6ODAuMDMsInRleHQiOiJMYSBjb25uZXhpb24gZXN0IHByb3ByZSDDoCBjaGFxdWUgYWdlbnQgOiBqZSBtZSByZWNvbm5lY3RlLCBlbiB1biBjbGljLiJ9LHsic3RhcnQiOjgxLjc1LCJlbmQiOjg0LjAsInRleHQiOiJMJ2FnZW50IGxpc3RlIGxlcyBzaXRlcyBhdXhxdWVscyBqJ2FpIGFjY8Oocy4ifSx7InN0YXJ0Ijo4Ni40NywiZW5kIjo4OC43MywidGV4dCI6IlBvdXIgcmV0aXJlciBsJ2FjY8OocywgamUgc3VwcHJpbWUgbGEgY2FwYWNpdMOpLiJ9LHsic3RhcnQiOjkwLjQ0LCJlbmQiOjkyLjQ3LCJ0ZXh0IjoiSmUgY2xpcXVlIHN1ciBsYSBjb3JiZWlsbGUsIGV0IGplIGNvbmZpcm1lLiJ9LHsic3RhcnQiOjkzLjQyLCJlbmQiOjEwMC41LCJ0ZXh0IjoiVHJvaXNpw6htZSBuaXZlYXUgOiBsZSBidWlsZGVyLiBPbiB5IHBhc3NlIHF1YW5kIG9uIGEgYmVzb2luIGQndW4gc2VydmljZSB0b2tlbiwgcG91ciBkZXMgdHJhaXRlbWVudHMgc2FucyB1dGlsaXNhdGV1ciwgb3UgZGUgc2EgcHJvcHJlIGFwcGxpY2F0aW9uIEVudHJhLiJ9LHsic3RhcnQiOjEwMi42MiwiZW5kIjoxMDUuMTcsInRleHQiOiJKZSBjcsOpZSB1biBlc3BhY2UgZGUgdHJhdmFpbCwgRMOpbW8gU2hhcmVQb2ludC4ifSx7InN0YXJ0IjoxMDcuMTcsImVuZCI6MTEwLjYxLCJ0ZXh0IjoiRGVwdWlzIGxlcyBpbXBvcnRzLCBqJ291dnJlIGwnQXBwIFN0b3JlIGV0IGonaW5zdGFsbGUgU2hhcmVQb2ludCBOZXh0LiJ9LHsic3RhcnQiOjExMS41NCwiZW5kIjoxMTMuMjIsInRleHQiOiJWb2ljaSBzYSBwYWdlIGRlIGNvbmZpZ3VyYXRpb24uIn0seyJzdGFydCI6MTE1LjcyLCJlbmQiOjExNy40OSwidGV4dCI6IklsIHkgYSBxdWF0cmUgbW9kZXMgZGUgY29ubmV4aW9uLiJ9LHsic3RhcnQiOjExNy44MiwiZW5kIjoxMTkuOTcsInRleHQiOiJPQXV0aCBhdmVjIHZvdHJlIHByb3ByZSBhcHBsaWNhdGlvbiBFbnRyYSwifSx7InN0YXJ0IjoxMjAuNDksImVuZCI6MTI0LjExLCJ0ZXh0IjoiY2xpZW50IGNyZWRlbnRpYWxzLCBjJ2VzdCBsZSBzZXJ2aWNlIHRva2VuLCBvdSB1biBqZXRvbiBkJ2FjY8OocyBkaXJlY3QuIn0seyJzdGFydCI6MTI1LjE5LCJlbmQiOjEyOC4yNCwidGV4dCI6IkplIGdhcmRlIGxlIGNsaWVudCBPQXV0aCBkZSBsYSBwbGF0ZWZvcm1lLCBzYW5zIHJpZW4gcmVtcGxpci4ifSx7InN0YXJ0IjoxMzEuNjQsImVuZCI6MTM0LjgsInRleHQiOiJMZSBjb25uZWN0ZXVyIGV4cG9zZSB1biBzZXJ2ZXVyIE1DUCA6IHZvaWNpIHNvbiBhZHJlc3NlLiJ9LHsic3RhcnQiOjEzNi4yOSwiZW5kIjoxMzkuMTcsInRleHQiOiJQYXIgc8OpY3VyaXTDqSwgc2V1bHMgbGVzIGFnZW50cyBjb2Now6lzIGljaSBwZXV2ZW50IGwnYXBwZWxlci4ifSx7InN0YXJ0IjoxNDEuMDIsImVuZCI6MTQyLjY2LCJ0ZXh0IjoiSidhdXRvcmlzZSBsJ2FnZW50IE1lcyBkb2N1bWVudHMuIn0seyJzdGFydCI6MTQ0LjkzLCJlbmQiOjE0Ni44LCJ0ZXh0IjoiRXQgaidpbnN0YWxsZSBsYSBjYXBhY2l0w6kgc3VyIGNldCBhZ2VudC4ifSx7InN0YXJ0IjoxNDguNjYsImVuZCI6MTUwLjg3LCJ0ZXh0IjoiRGUgcmV0b3VyIGRhbnMgQWdlbnQgQ3JlYXRvciwgaidvdXZyZSBsJ2FnZW50LiJ9LHsic3RhcnQiOjE1Mi4zMywiZW5kIjoxNTUuNjcsInRleHQiOiJMYSBjYXBhY2l0w6kgU2hhcmVQb2ludCBOZXh0IGVzdCBiaWVuIGzDoCwgaW5zdGFsbMOpZSBkZXB1aXMgbGUgYnVpbGRlci4ifSx7InN0YXJ0IjoxNTcuNTUsImVuZCI6MTU5LjAzLCJ0ZXh0IjoiSmUgbGUgdGVzdGUgZGFucyBsZSBQbGF5Z3JvdW5kLiJ9LHsic3RhcnQiOjE2MC44OCwiZW5kIjoxNjMuMTUsInRleHQiOiJJbCByw6lwb25kIGF1c3NpdMO0dCwgYXZlYyBsYSBsaXN0ZSBkZXMgc2l0ZXMuIn0seyJzdGFydCI6MTY0LjU4LCJlbmQiOjE2OS4zMiwidGV4dCI6IlF1YXRyacOobWUgbml2ZWF1IDogbGVzIGF1dG9tYXRpc2F0aW9ucy4gRGFucyBsJ2VzcGFjZSBkZSB0cmF2YWlsLCBqZSBjb25uZWN0ZSBtb24gY29tcHRlIE1pY3Jvc29mdC4ifSx7InN0YXJ0IjoxNzAuMjIsImVuZCI6MTczLjQ4LCJ0ZXh0IjoiQydlc3QgY29ubmVjdMOpIDogY2UgamV0b24gc2VydmlyYSBhdXNzaSBhdXggZXjDqWN1dGlvbnMgcGxhbmlmacOpZXMuIn0seyJzdGFydCI6MTc1LjQ4LCJlbmQiOjE3Ni44OCwidGV4dCI6IkplIGNyw6llIHVuZSBhdXRvbWF0aXNhdGlvbi4ifSx7InN0YXJ0IjoxNzcuNDEsImVuZCI6MTgwLjk5LCJ0ZXh0IjoiVG91dGVzIGxlcyBvcMOpcmF0aW9ucyBTaGFyZVBvaW50IHNvbnQgZGlzcG9uaWJsZXMgY29tbWUgaW5zdHJ1Y3Rpb25zLiJ9LHsic3RhcnQiOjE4Mi43OSwiZW5kIjoxODQuMiwidGV4dCI6IkplIGNoZXJjaGUgc2VhcmNoU2l0ZXMuIn0seyJzdGFydCI6MTg0LjcsImVuZCI6MTg2LjI3LCJ0ZXh0IjoiSmUgbCdham91dGUsIHB1aXMgamUgcGFzc2UgZW4gWUFNTC4ifSx7InN0YXJ0IjoxODYuODMsImVuZCI6MTkxLjU0LCJ0ZXh0IjoiSmUgY29sbGUgbGUgYmxvYyA6IHNlYXJjaFNpdGVzIGF2ZWMgdW5lIMOpdG9pbGUsIHB1aXMgdW5lIGJvdWNsZSBxdWkgY29sbGVjdGUgbGUgbm9tIGRlIGNoYXF1ZSBzaXRlLiJ9LHsic3RhcnQiOjE5My4zNCwiZW5kIjoxOTUuNDksInRleHQiOiJKJ2VucmVnaXN0cmUsIGV0IGplIHJldmllbnMgw6AgbGEgdnVlIGdyYXBoaXF1ZS4ifSx7InN0YXJ0IjoxOTguMjUsImVuZCI6MTk5Ljg4LCJ0ZXh0IjoiSidleMOpY3V0ZSBsJ2F1dG9tYXRpc2F0aW9uLiJ9LHsic3RhcnQiOjIwMC43OCwiZW5kIjoyMDIuMzMsInRleHQiOiJFdCB2b2ljaSBsYSBsaXN0ZSBkZXMgc2l0ZXMuIn0seyJzdGFydCI6MjA1LjIyLCJlbmQiOjIwOC43MSwidGV4dCI6IkVuZmluLCBjw7R0w6kgYWRtaW5pc3RyYXRldXIgOiBqJ291dnJlIGwnZXNwYWNlIGRlIHRyYXZhaWwgZHUgY29ubmVjdGV1ci4ifSx7InN0YXJ0IjoyMDkuNzksImVuZCI6MjE1LjI4LCJ0ZXh0IjoiQydlc3QgaWNpIHF1ZSBsJ2FkbWluaXN0cmF0ZXVyIGTDqWNsYXJlLCB1bmUgc2V1bGUgZm9pcywgbGUgY2xpZW50IE9BdXRoIGRlIGxhIHBsYXRlZm9ybWUsIHV0aWxpc8OpIHBhciB0b3V0IGxlIG1vbmRlLiJ9LHsic3RhcnQiOjIxNi41NiwiZW5kIjoyMjAuNTcsInRleHQiOiJFdCBjZSBib3V0b24gcHVibGllIGxlIGNvbm5lY3RldXIgZGFucyBsZSBjYXRhbG9ndWUgZGUgY2FwYWNpdMOpcyBkZSBsJ29yZ2FuaXNhdGlvbi4ifV19fX0=" />

For a tour of agent creation itself, see the video in [Creating agents](/products/agent-factory/creating-agents).

## How the agent handles each format

The agent reads every format through the [SharePoint connector](/apps-store/marketplace/connectors/sharepoint), but not the same way:

| Format | How the agent reads it | How the agent produces or changes it |
| - | - | - |
| Word `.docx` | Full text, read directly | Drafts the document in the canvas; the user exports it as DOCX or PDF |
| Excel `.xlsx` | Cell values, read directly | **Edits the workbook in place** (cells, table rows, sheets), after the user confirms |
| Text (`.txt`, `.csv`, `.md`, `.json`) | Full text, read directly | Drafts the content in the canvas |
| PDF | Attached to the conversation, once the user approves | Drafts the document in the canvas; the user exports it as PDF |
| PowerPoint `.pptx` | Attached to the conversation, once the user approves | With [Deck Designer](/products/agent-factory/slides): builds the deck in the canvas; the user exports it as PPTX or PDF |
| Images | Attached to the conversation, once the user approves, and passed to the model as an image | — |

**Attaching a file** works like a file the user drops in the chat: the agent offers the file, the user clicks **Approve**, and the platform fetches it from SharePoint server-side and indexes it in the conversation. The agent then searches it for the passages it needs. PDF and PowerPoint files are accepted up to 100 MB, images up to 4 MB.

**Producing a file** goes through the [canvas](/products/ai-securechat/canvas): the agent drafts the document (or, with [Deck Designer](/products/agent-factory/slides), the deck), the user reviews it, exports it, and saves it to SharePoint. The connector does not upload file content, so only Excel workbooks are changed in place. Changing an existing Word document means reading it, then drafting the full new version in the canvas: the original styles and images are not carried over.

## Prerequisites

* **Who:** an agent builder with access to Agent Creator, and a workspace builder (or workspace owner) of the workspace that runs the SharePoint connector.
* **Where:** Agent Creator, and the SharePoint connector's configuration app.
* **Requires:** the SharePoint connector installed and configured in a workspace, with an authentication mode and Graph scopes chosen (see [SharePoint: Workspace builder](/apps-store/marketplace/connectors/sharepoint)). For Excel edits, the scopes must include `Sites.ReadWrite.All` and `Files.ReadWrite.All`.
* **Impact:** with the per-user OAuth modes, each user only reaches the files they can already open in SharePoint. With `clientCredentials`, the agent reaches every site the application is allowed to read, whoever talks to it.

## Set up the agent

<Steps>
  <Step title="Create the agent">
    In **Agent Creator**, create an agent with the **agent\_light** profile or higher: **Simple** makes no tool calls, and **Workflow** is capped at 10 tool calls. Pick a model that handles tool calls well and is allowed in your organization.
  </Step>

  <Step title="Add the SharePoint capability">
    Open **Capabilities** and add **Sharepoint Next** from the catalog, or point a capability at your SharePoint workspace's MCP endpoint with the scope `context_id,agent_id,user_id` (see [SharePoint: Agent builder](/apps-store/marketplace/connectors/sharepoint)).
  </Step>

  <Step title="Turn on the canvas">
    In the agent settings, make sure **Canvas enabled** is on. Without it, the agent cannot draft documents or decks for export.
  </Step>

  <Step title="Raise the token budget">
    In **Settings → General → Advanced**, set **Message Token Budget** to 200,000: the SharePoint tools return large results, and a find → read → draft sequence can exceed the `agent_light` default (100,000). Leave **Max Turns** at its default.

    The tool call budget (15 on `agent_light`) is not editable in Agent Creator. If a request needs more calls, set `tool_call_budget` on the agent through the [Agent Creator API](/agent-factory/agents/update-an-agent-partial-update), or use the **agent\_full** profile.
  </Step>

  <Step title="Brief the agent">
    Add these instructions to the agent's [instructions](/products/agent-factory/instructions), and adapt them to your sites:

    ```text theme={null}
    You help the user find, read and produce Office documents stored in SharePoint and OneDrive, through the SharePoint tools (search, sites, drives, items, documents, workbook), each driven by its `action` argument.

    To find a file, use `search` (action `query`), or browse with `sites`, `drives` and `items`. Keep the file's `driveId` and `itemId`, and quote its web link in your answer.

    To read a file, pick the tool by format:
    - Word .docx: `documents` (action `getText`).
    - Excel .xlsx: `workbook` (action `listWorksheets`, then `usedRange` or `getRange`).
    - Text (.txt, .csv, .md, .json): `items` (action `getContent`).
    - PDF, PowerPoint and images: `items` (action `attachToChat`). Tell the user they will be asked to approve the attachment; once approved, read the file from the conversation documents.
    Never try to decode file bytes yourself. If an attachment is refused as too large, share the file's web link.

    You cannot write a Word, PowerPoint, PDF or text file to SharePoint. To create or change one, draft it in the canvas and tell the user to export it and save it to SharePoint. To change an existing document, read it first, then draft the full new version.

    You can edit Excel workbooks in place with `workbook` (`updateRange`, `addTableRow`, `addWorksheet`, `createTable`). Before writing, state the sheet, range and values, and wait for the user's confirmation. Ask for confirmation before any rename, move, delete or sharing change too.
    ```

    To build PowerPoint decks, also add [Deck Designer](/products/agent-factory/slides) and the Slides MCP server: the default canvas has no slide format, so without them the agent can only draft text documents. Deck Designer must first be published in your organization's catalog.
  </Step>

  <Step title="Allowlist the agent in the connector">
    If the capability points at the SharePoint endpoint of your own workspace, open **Authorized agents** in the connector's configuration app, tick your agent (or turn on **Allow all agents**), and save. Until you do, that endpoint refuses the agent. A capability published from the connector's own core workspace accepts every agent.
  </Step>

  <Step title="Publish the agent">
    Publish the agent so that users can open it in the chat.
  </Step>
</Steps>

## Verify the result

Open the agent in the chat, with a Microsoft account that can open a few test files:

1. Ask *"Find a PDF, a PowerPoint, a Word file and an Excel workbook in SharePoint."* With a per-user OAuth mode, the first request shows a **Connect** button: sign in, and the request resumes on its own. Confirm that the agent lists files with their location.
2. Ask the agent to summarize a Word file, then an Excel workbook. Confirm that both answers reflect the files' content.
3. Ask it to summarize a PDF. Confirm that an attachment approval appears, and that after **Approve** the summary reflects the document's content.
4. Ask for a one-page summary of the Word file. Confirm that it opens in the canvas and can be exported.
5. If you added Deck Designer, ask for a three-slide presentation based on the Word file. Confirm that the deck opens in the canvas with **PPTX** and **PDF** export options.

## Troubleshooting

### The agent answers that the file exceeds the attachment limit

**Cause:** the file is larger than the attachment limit: 100 MB for documents (`attachment_direct_max_bytes`), 4 MB for images (`attachment_fetch_max_bytes`).

**Owner:** platform administrator, for the limits.

**Resolution:** share the file's SharePoint link, or use a smaller version of the file. The limits are platform defaults of the Agent Creator workspace.

### `This agent is not authorized to use this connector`

**Cause:** the capability points at a workspace's own SharePoint endpoint, and the agent is not ticked in that connector's **Authorized agents** list.

**Owner:** the workspace builder of the SharePoint connector.

**Resolution:** open the configuration app → **Authorized agents**, tick the agent, save, and ask the question again.

### The agent returns unreadable content for a PDF or PowerPoint file

**Cause:** the agent's instructions do not route these formats to `attachToChat`, or the platform version predates attachment offers from `getContent`.

**Owner:** the agent builder.

**Resolution:** add the format rules of the briefing above to the agent's instructions, publish the agent, and retry in a new conversation.

## Undo the change

Remove the SharePoint capability from the agent, untick the agent in **Authorized agents**, and publish the agent again. Files attached in past conversations stay in those conversations until their [document retention](/products/agent-factory/settings) expires.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.