
SharePoint and Zoho CRM Integration Guide 2026
If your team stores documents in SharePoint and manages sales in Zoho CRM, you're probably switching between two systems dozens of times a day. A properly configured integration changes that — reps access proposals, contracts, and NDAs directly from a CRM record without leaving Zoho. This guide covers every viable method to connect the two, including when to skip SharePoint entirely and use Zoho WorkDrive instead.
Microsoft SharePoint is used by most enterprise and mid-market teams already running Microsoft 365. If that's your environment, you're not going to migrate documents to a different platform just because you moved your CRM to Zoho. The integration needs to work with SharePoint as-is. The good news: it can, with a few different approaches depending on your technical depth and required functionality.
Use Cases Worth Integrating For
Not every SharePoint–CRM overlap is worth automating. These three are.
Contract storage linked to deals: When a deal closes, the signed contract should be accessible from the Zoho CRM deal record. Without integration, reps search SharePoint separately — and often can't find it.
Proposal management: Sales proposals go through multiple revisions. Having the latest version linked to the CRM opportunity (with version history from SharePoint) prevents reps from sending outdated decks.
Onboarding document packets: Post-sale, customer success teams need signed agreements, scope-of-work documents, and compliance forms. If these live in SharePoint, linking them to the CRM account record makes handoffs clean.
Method 1 — Zoho Flow (No-Code, Recommended Starting Point)
Zoho Flow is Zoho's native integration platform. It has a pre-built SharePoint connector and a Zoho CRM connector. You can build automation without writing code.
What you can automate with Zoho Flow:
- When a Zoho CRM deal stage changes to "Closed Won", create a folder in a specified SharePoint document library named after the deal (e.g.,
Deals/2026/Acme Corp - Enterprise License) - When a new file is uploaded to a SharePoint folder, log an activity note on the associated CRM record
- When a SharePoint file is modified, update a custom field on the CRM record with the last-modified timestamp and editor name
Step-by-step: Create a SharePoint folder when a deal is won
- Log into Zoho Flow at
flow.zoho.com - Click Create Flow → choose Trigger: Zoho CRM → Record Update
- Select Module: Deals; Field: Stage; Condition: equals "Closed Won"
- Add an Action: SharePoint → Create Folder
- Authenticate your Microsoft 365 account (OAuth — it opens a Microsoft login prompt)
- Set the Site URL to your SharePoint site (e.g.,
https://yourcompany.sharepoint.com/sites/Sales) - Set the Drive to your document library (e.g.,
Shared Documents) - Set the Folder Name to a dynamic value:
Deals/{{Deal_Name}}using the CRM field - Save and publish the flow
Limitation: Zoho Flow's SharePoint connector covers folder creation, file upload, and file listing — but it does not create inline document links inside Zoho CRM records. For that, you need Deluge (covered below).
Method 2 — Zoho Deluge with SharePoint REST API
Zoho CRM's built-in scripting language, Deluge, can call external APIs. SharePoint exposes a REST API and a Microsoft Graph API. Using Deluge functions, you can pull SharePoint file URLs and embed them directly into CRM records as clickable links.
Prerequisites:
- A registered Azure AD application with
Sites.ReadWrite.AllorFiles.ReadWrite.AllMicrosoft Graph permissions - Client ID and Client Secret from Azure AD app registration
- Your SharePoint Site ID (obtainable from the Graph API:
GET https://graph.microsoft.com/v1.0/sites/{hostname}:/sites/{sitename})
Step 1 — Store credentials in Zoho CRM
Go to Zoho CRM → Setup → Developer Space → Connections. Create a new connection using the OAuth 2.0 template with:
- Auth URL:
https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/authorize - Token URL:
https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token - Scope:
https://graph.microsoft.com/.default - Client ID and Client Secret from your Azure AD registration
Step 2 — Write a Deluge function to fetch file links
// Triggered via a CRM button on the Deal record
dealId = input.get("dealId");
dealName = input.get("dealName");
// Build the SharePoint Graph API request
siteId = "your-sharepoint-site-id";
drivePath = "/drives/{drive_id}/root:/Deals/" + dealName + ":/children";
endpoint = "https://graph.microsoft.com/v1.0/sites/" + siteId + drivePath;
response = invokeurl
[
url: endpoint
type: GET
connection: "sharepoint_connection"
];
files = response.get("value");
linkHtml = "";
for each file in files
{
fileName = file.get("name");
fileUrl = file.get("webUrl");
linkHtml = linkHtml + "<a href='" + fileUrl + "' target='_blank'>" + fileName + "</a><br/>";
}
// Update a multi-line text field on the Deal record
mp = Map();
mp.put("SharePoint_Documents", linkHtml);
zoho.crm.updateRecord("Deals", dealId, mp);
Step 3 — Add a custom field to the Deals module
In CRM → Setup → Modules and Fields → Deals, add a Multi-line or URL custom field named SharePoint Documents. This is where the Deluge function writes the file links.
Step 4 — Create a CRM button
In CRM → Setup → Modules and Fields → Deals → Links and Buttons, add a custom button labeled "Refresh SharePoint Files" that triggers the Deluge function. Reps click this button on any Deal record to pull the latest file listing from the corresponding SharePoint folder.
Method 3 — SharePoint Webhooks to Zoho CRM
SharePoint supports outgoing webhooks that fire when files are added or modified in a document library. You can point these webhooks at a Zoho CRM webhook URL to trigger CRM record updates automatically — no polling required.
How SharePoint webhooks work: SharePoint sends a POST notification to your endpoint when a change occurs. The notification payload contains the site, list, and a change token. Your endpoint then queries the SharePoint API with that change token to get the actual changed items.
Setup overview:
- Register a SharePoint webhook subscription against your document library using the SharePoint REST API or Microsoft Graph (
POST /v1.0/subscriptions) - Set
notificationUrlto a Zoho Flow webhook URL (create a Flow with trigger: Webhook — Incoming Data) - In the Zoho Flow, parse the SharePoint notification payload and call the SharePoint Graph API to fetch changed file details
- Update the relevant Zoho CRM record based on folder name (which you've named to match your CRM Deal Name)
This method is event-driven and real-time, but requires ongoing maintenance — SharePoint webhook subscriptions expire every 180 days and must be renewed.
Field Mapping: SharePoint Metadata to CRM
When pulling files from SharePoint, these metadata fields map cleanly to Zoho CRM activity/note fields:
| SharePoint Field | Zoho CRM Field |
|---|---|
| name | Attachment name in activity log |
| webUrl | Custom URL field on Deal/Contact |
| lastModifiedDateTime | Last Modified (custom field) |
| lastModifiedBy.user.displayName | Modified By (custom field) |
| size | File Size (custom field, optional) |
| createdDateTime | Document Created Date |
When to Use Zoho WorkDrive Instead
Zoho WorkDrive is Zoho's native document management platform — the SharePoint equivalent within the Zoho ecosystem. If you're evaluating the integration, consider switching if:
- Your team does not already use Microsoft 365 elsewhere (Teams, Outlook, Excel)
- You're starting a new document workflow from scratch and have no legacy SharePoint content
- You want document links that open natively inside Zoho without browser redirects
WorkDrive integrates with Zoho CRM out of the box. Go to CRM → Setup → Marketplace → Zoho Apps → WorkDrive and enable it. Each CRM module (Deals, Contacts, Accounts) gets a dedicated WorkDrive folder automatically created when a record is added. No Deluge, no Flow, no Azure AD app registration.
If your team is half-Microsoft (Exchange, Teams) and half-Zoho, SharePoint integration is the right call. If you're fully on Zoho or moving in that direction, WorkDrive removes 80% of the complexity described above.
Limitations to Know Before You Build
No real-time file sync: None of the methods above create a true two-way file sync between SharePoint and Zoho CRM. Files are linked, not copied. The source of truth remains SharePoint.
SharePoint permissions don't carry over: When a CRM rep clicks a SharePoint link from Zoho CRM, they must have SharePoint permissions on that folder/file independently. The integration doesn't bypass Microsoft's access controls.
Zoho Flow SharePoint connector gaps: The Zoho Flow SharePoint connector (as of September 2026) does not support SharePoint Modern sites with custom content types or document sets. Classic libraries and standard modern libraries work reliably.
Token expiry: OAuth tokens for the SharePoint connection expire. Zoho Connections handles auto-renewal, but if your Azure AD app has conditional access policies (IP restrictions, MFA for service accounts), token refresh can fail silently. Test this in staging first.
File co-authoring: Files opened from a CRM link open in SharePoint's web editor. Co-authoring in real time requires users to be in SharePoint — there's no co-authoring inside Zoho.
Which Method to Use
| Scenario | Recommended Method | |---|---| | Non-technical team, basic folder creation | Zoho Flow | | Need file links inside CRM records | Deluge + Microsoft Graph API | | Real-time file-added notifications | SharePoint Webhooks → Zoho Flow | | New document workflow, Zoho-first | Zoho WorkDrive (skip SharePoint) | | Enterprise with Azure AD governance | Deluge + Connections (OAuth) |
Getting This Set Up
If you're running Zoho CRM and Microsoft 365 and want the SharePoint integration configured without spending weeks on it, VoltVave handles this as part of our Zoho CRM implementation work. We're based in Bengaluru and Srinagar and work with businesses across India, UAE, the UK, and the USA.
// Related Services
// Authorized Zoho Partner
Need help with Zoho?
VoltVave handles Zoho implementation, migration, and long-term support for businesses across India. Free initial consultation.
