Jotform SharePoint Integration: What Works and What Doesn't
Jotform doesn't have a native SharePoint integration. Enterprise teams still need form data in SharePoint. Here are the three paths that actually work, the one I recommend, and the gotchas that eat your afternoon.
- Jotform has no built-in SharePoint integration. You need a middle layer: Power Automate, Zapier, or a custom webhook to the Microsoft Graph API.
- Power Automate with a Jotform webhook trigger is the most common enterprise approach. The community-maintained Jotform connector in Power Automate works but lags behind Jotform's API changes.
- SharePoint list field types don't map cleanly to Jotform field types. Dates, lookups, and choice fields all have alignment issues you have to handle in the flow.
- File uploads from Jotform need a separate flow step in Power Automate. They don't land in a SharePoint document library automatically.
If you're reading this, you probably have a SharePoint list or document library and a Jotform that feeds it. That combination shows up constantly in enterprise: internal request forms, procurement workflows, HR onboarding checklists. The data needs to end up in SharePoint because that's where the rest of the org lives. Jotform doesn't ship a native SharePoint connector. Microsoft doesn't ship a native Jotform trigger. You're building a bridge.
I spent five years on the Jotform engineering team. I worked on the integrations surface, including the webhook pipeline and the third-party connector framework. The SharePoint gap came up in enterprise sales calls regularly. Here's what actually works, what breaks, and where you'll spend your time.
The three paths
There are three ways to move Jotform submissions into SharePoint. Each has a different cost profile and a different failure mode.
- Power Automate (Microsoft Flow) with a Jotform webhook trigger. Most common in Microsoft-first organizations. Native to the M365 ecosystem. Requires Azure AD app registration for custom webhooks, or the community-maintained Jotform connector.
- Zapier as a middle layer. Jotform triggers a Zap, the Zap writes to SharePoint via Zapier's SharePoint integration. Works well for simple flows. Gets expensive at volume because Zapier bills per task.
- Custom webhook to Microsoft Graph API. You build an endpoint (Azure Function, AWS Lambda, or your own server) that receives the Jotform webhook and calls the Graph API to create the SharePoint list item. Most control, most engineering effort.
Path 1: Power Automate (the one most teams use)
Power Automate is Microsoft's workflow automation tool, baked into most M365 plans. It has a Jotform trigger, but here's the thing: that trigger is a community-maintained connector, not a Microsoft first-party connector. Community connectors work, but they lag behind API changes and they don't come with SLAs.
Setup with the community connector
- In Power Automate, create a new flow. Choose 'Automated cloud flow.'
- Search for 'Jotform' in the trigger selector. You'll see a 'When a new submission is received' trigger.
- Connect your Jotform account (OAuth or API key).
- Select the form you want to trigger on.
- Add a SharePoint action: 'Create item' for lists, 'Create file' for document libraries.
- Map Jotform fields to SharePoint columns.
- Test and activate.
Setup with a raw webhook (more reliable)
Skip the community connector and use Power Automate's 'When an HTTP request is received' trigger instead. This gives you a URL. Paste that URL into Jotform's webhook integration (Settings, Integrations, Webhooks). Now you control the payload parsing.
The tradeoff: you have to define the JSON schema for the incoming request so Power Automate can parse it. Jotform's webhook payload is in a 'rawRequest' field as a string. You'll need a Parse JSON step in your flow to extract the submission data before you can map it to SharePoint columns. It's more setup, but it's more resilient to API changes because you're reading the raw payload, not depending on a connector that interprets it for you.
The field mapping problem
This is where most of the debugging time goes. Jotform and SharePoint have different field type systems, and the mismatches aren't always obvious.
- Jotform date fields output in 'YYYY-MM-DD' format. SharePoint expects ISO 8601 with a time component. You need an expression in Power Automate to pad the time, or the item creation fails silently.
- Jotform dropdown selections come through as strings. SharePoint Choice columns expect the string to match one of the configured choices exactly. A trailing space or different capitalization breaks the mapping. You need a Compose step to normalize the value before the Create Item step.
- Jotform number fields output strings in the webhook payload. SharePoint Number columns expect numeric types. Parse and cast before writing.
- Jotform file uploads send a URL to the uploaded file. They don't send the file content in the webhook payload. If you want the file in a SharePoint document library, you need a separate flow step: HTTP GET the file URL, then create the file in SharePoint.
- Jotform multi-select (checkbox) fields output comma-separated strings. SharePoint MultiChoice columns expect arrays. Split the string in Power Automate before mapping.
File uploads: the separate flow step
This one catches people off guard. Jotform's webhook sends a URL for each uploaded file, not the file itself. If your SharePoint target is a document library (and for most enterprise workflows, it is), you need a second action in your Power Automate flow: an HTTP request to download the file from Jotform's CDN, then a 'Create file' action to write it to SharePoint.
Jotform's file URLs are temporary. They expire after a period (typically 24 hours for unauthenticated access). If your Power Automate flow has a delay or a retry that spans past the expiry window, the file download fails. The list item might already be created in SharePoint with a missing attachment. For production flows, handle the file download in the same flow run as the item creation, with no branching delays between them.
Authentication: Azure AD app registration
If you use the community Jotform connector, it handles auth for you. If you use the raw webhook approach and need to write to SharePoint with application permissions (not delegated), you need an Azure AD app registration.
- In the Azure Portal, go to App Registrations and create a new registration.
- Add API permissions: Microsoft Graph, Application permissions, Sites.ReadWrite.All (or Sites.Selected for least-privilege).
- Create a client secret and store it securely (Azure Key Vault, not in your flow definition).
- In Power Automate, use the 'HTTP with Azure AD' action or a custom connector that authenticates with the app's client ID and secret.
- Grant admin consent for the API permissions in Azure AD.
Path 2: Zapier as a middle layer
If you already use Zapier for other integrations, the Jotform-to-SharePoint path through Zapier is straightforward. Jotform is a first-class Zapier trigger. SharePoint is a first-class Zapier action. The field mapping UI in Zapier is better than Power Automate's for non-technical users.
The problems: cost and latency. Zapier bills per task. A single Jotform submission that creates a SharePoint list item and uploads two files is three tasks (one per action). At scale, that adds up. Power Automate is included in most M365 plans with generous run quotas. Latency: Zapier polls Jotform for new submissions (typically 1-5 minute intervals on lower plans). Power Automate webhooks fire near-real-time. For internal enterprise workflows where people are watching a SharePoint list for new items, the delay matters.
Path 3: Custom webhook to Graph API
For teams with engineering capacity, building a small service that receives Jotform webhooks and writes to SharePoint via the Microsoft Graph API gives you the most control. You handle retries, logging, field transformation, and error alerting yourself.
The Graph API endpoint for creating a list item is straightforward: POST to /sites/{siteId}/lists/{listId}/items with a body that specifies the field values. Authentication uses the same Azure AD app registration I described above. The main reason to take this path: you need custom logic that Power Automate can't express cleanly (multi-step transformations, lookups against other systems before writing, or conditional routing to different lists based on submission content).
The downside: you're now maintaining a service. If it goes down, submissions stop landing in SharePoint and you might not know until someone asks where their data is. Add health checks, alerting, and a dead-letter queue for failed writes.
Enterprise-specific considerations
SharePoint Online and BAA coverage
If you're in a regulated industry (healthcare, finance), and your Jotform submissions contain PHI or other regulated data, the BAA question comes up. Jotform offers a BAA on Silver+ plans. SharePoint Online is covered under Microsoft 365's BAA (available on Business Premium and Enterprise plans). The gap: whatever sits in the middle. Power Automate runs inside your M365 tenant, so it's under Microsoft's BAA. Zapier is not (unless you pay for their HIPAA plan). A custom webhook service you host yourself is under your own BAA with your hosting provider. For regulated data, Power Automate is the cleanest path because the data stays within the Microsoft ecosystem.
On-premises SharePoint
If your SharePoint is on-premises (SharePoint Server 2016/2019), the authentication story is different. You can't use Azure AD app registration directly. You need either an on-premises data gateway (Power Automate supports this) or direct authentication against the on-premises SharePoint REST API (Windows auth, NTLM, or ADFS). The data gateway adds latency and another failure point. Custom webhook services can authenticate against on-premises SharePoint with proper network access, but that's more infrastructure work. Most teams running on-prem SharePoint that I've worked with end up using the data gateway.
What I recommend
- For most enterprise teams on M365: Power Automate with a raw webhook trigger (not the community connector). More setup, fewer surprises.
- For small teams already using Zapier: the Zapier path is fine. Watch the task count.
- For teams with engineering resources and complex logic: custom webhook to Graph API. You own the reliability.
- For regulated data: Power Automate, because it stays inside the Microsoft BAA boundary.
The integration itself isn't hard. The field mapping and the authentication are where you'll spend your time. Budget a day for setup and testing, not an hour. The SharePoint list that looks like it matches your Jotform perfectly on paper never does when you start pushing real data through it.


