SharePoint Document Processing
Design one SharePoint library as the system of record for intake, metadata, versioning, and named approval. Power Automate orchestrates. Extraction stays separate.
— Craig Major
What SharePoint document processing is
SharePoint document processing is the work of making one library the system of record for incoming files. The library holds content types, metadata, identity, versions, permissions, and the controlled record. Power Automate orchestrates triggers, approvals, and retries. AI Builder or Azure AI Document Intelligence extracts fields. A named person still approves before any downstream draft exists.
Start with Document Processing Automation if you still need to decide what to automate first.
Who this is for
Use this when files already land in Microsoft 365 and the next failure is identity, not capture. You can name one library, one owner role, and the object a later system would create after approval.
Prerequisites:
- One team site or hub-connected site you are willing to pilot
- Content types enabled on that library
- Named approvers with Approve Items, not a shared inbox alias
- A duplicate key you can test
- Fictional or approved samples before any live write
Leave these out of the first library: org-wide information architecture, enterprise records-management certification, anonymous approval, high-confidence auto-release, payment, final accounting posts, and supplier bank-detail changes.
If the pain is still "we cannot read the PDF," start with intelligent document processing. Extraction is not a library schema.
What each layer owns
| Layer | Owns | Does not replace |
|---|---|---|
| SharePoint library | Content types, columns, views, versioning, checkout, permissions, classic content approval, the durable item id | Flow steps or OCR accuracy |
| Power Automate | File-created triggers, conditions, Approvals, Set content approval status, retries, one draft write | Library information architecture |
| Microsoft 365 document processing | Library-applied classify and extract models, formerly sold as Syntex pay-as-you-go services | The Power Automate Process documents action |
| AI Builder in a flow | Process documents action, confidence 0-1 | A SharePoint content type |
| Azure AI Document Intelligence | Pro-code API extraction | The default SMB path |
Microsoft now calls the former Syntex pay-as-you-go services document processing for Microsoft 365. Structured and freeform library models are built with AI Builder and applied in the library Classify and extract surface. Unstructured models live in a content center. Those four surfaces are related. They are not one feature.
Worked example
Cedar & Quay Fabrication Ltd is a fictional Toronto buyer. Ridgemont Industrial Supply Co sends invoice INV-TP-2401 dated 8 September 2026. Safety vests, clipboards, and fastener bins. Subtotal CAD 400.00, HST CAD 52.00, total CAD 452.00. That is the same fictional invoice used in invoice processing automation. It is a library example here, not an accounts payable payment path. The HST 13% label is fixture vocabulary, not tax advice.
The library should:
- Store the file in content type
CQ Supplier Invoice, not as a loose PDF in a folder. - Require DocId, VendorName, InvoiceNumber, DuplicateKey, Owner, ReceivedDate, and business Status.
- Keep business Status separate from SharePoint ModerationStatus.
- Optionally run a Microsoft 365 invoice model or a Power Automate extraction step. Confidence fills
ConfidenceMin. It does not approve. - Freeze the current ETag and version before a named approver decides.
- After Approve, write one DownstreamRef to a draft destination. Do not create a payment.
That clean path is case 1 in the SharePoint Library Schema. The other six cases reuse the same companies.
The library workflow
- Decide the library. One purpose. Metadata and views first. Thin folder roots only if people or an app still need a folder.
- Enable content types. Add CQ Intake Document, then CQ Supplier Invoice, CQ Client Form Packet, CQ Policy Controlled, and CQ Exception Packet.
- Add columns. Required business identity first. Index DuplicateKey, DocId, Status, and ReceivedDate. Hide ModerationStatus from casual views unless content approval is on.
- Turn on versioning. New Microsoft 365 libraries default to keeping about the last 500 versions. Use major and minor versions when drafts must stay hidden. Require checkout only when co-authoring is not needed.
- Set permissions. Members upload and edit metadata. Approvers have Approve Items. Owners are not the routine business approver. Guests do not approve controlled documents.
- Intake. A person or a flow drops the file. Capture driveItem id, FileLeafRef, ContentType, Created, and ETag.
- Validate. Required columns, duplicate key, optional math on invoice totals, optional confidence floor. Failures go to Exception.
- Approve. Classic content approval sets ModerationStatus to Pending, then Approved or Rejected. Power Automate Approvals can run beside that and may write custom columns instead. For documents, Set content approval status needs the ETag from Get file metadata.
- Handoff. After Approve, write one draft destination and store DownstreamRef. Retry with the same DuplicateKey. Write count stays 1.
- Keep evidence. Version history, item history, approval comments, and flow run history are the audit trail. Screenshots from a live tenant are
needs_tenant_proof.
Invoice processing is a domain example of steps 6 through 9. It still stops at a reviewed draft.
Content types, columns, and views
Content types are reusable metadata plus behavior. Enable management of content types on the library, then add columns to the type, not only to one view.
Minimum business columns: DocId, DocType, Status, Owner, Approver, ReceivedDate, SourceChannel, DuplicateKey, SourceHash, VersionLabel, ConfidenceMin, ExceptionCode, DownstreamRef, RetentionQuestionFlag. System columns still matter: FileLeafRef, ContentType, ModerationStatus when content approval is on, and ETag.
Views do the browsing that folders used to do:
- All active
- My drafts
- Pending approval
- Exceptions
- By content type
- Optional flat view with folders hidden
Hiding a column in a view does not delete the data. New content-type columns often need a manual add to existing views.
Folder versus metadata
Default for automation: metadata and views first. A deep folder tree gives Power Automate brittle paths and hides the same vendor invoice under two names.
Thin folder roots are fine when a scanner or a person still needs a drop location. Record that decision. Do not use the file name as the only duplicate key. Graph conflictBehavior can fail, replace, or rename a driveItem. That is a file-name collision rule, not a business duplicate rule.
Permissions, versioning, and checkout
Default SharePoint levels include Full Control, Design, Edit, Contribute, Read, and Approve. Approve Items is the permission that approves minor versions and content approval. Override Check-Out is powerful. Keep it off the routine approver.
Prefer Microsoft 365 group inheritance. Unique permissions work until they do not: you cannot break or re-inherit permissions on a list, library, or folder with more than 100,000 items.
Version history limits exist at organization, site, and library scope. Retention or eDiscovery can ignore those limits until the hold is released. Trim jobs are permanent. Recheck the current limits page on publish day.
Checkout stops a second editor, including a flow, from writing metadata. If a file is checked out, treat it as checkout_lock until check-in or a policy-controlled Override Check-Out.
Classic content approval versus modern Approvals
These are not the same control.
Classic content approval uses ModerationStatus: Draft, Pending, Approved, Rejected. Pending documents stay hidden from general readers when draft-item security is configured that way. Power Automate Set content approval status writes that system field. Microsoft's document-approval guidance says documents and pages need the ETag even when the action help text looks optional.
Modern Approvals (Start and wait for an approval, or Automate → Configure Approvals on some libraries) can record a decision in custom columns and in the Approvals history. They do not automatically become ModerationStatus. Whether a modern library still exposes classic Require content approval is tenant-variable. Mark that gap needs_tenant_proof.
Neither control is an e-signature. Microsoft also sells eSignature as a separate document processing service. Neither control is payment approval.
Anonymous or unnamed approval is not an acceptable control. A shared mailbox is not an approver.
What can run automatically, and what cannot
| Situation | Automatic action | Person required |
|---|---|---|
| File lands and id plus ETag are stored | Yes | No |
| Required metadata present | Move to ReadyForReview | Yes if a required column is empty |
| DuplicateKey already InApproval or DownstreamDone | Status Duplicate. No second write | Only a documented reopen |
| Extraction confidence below policy | Fill ConfidenceMin and ExceptionCode | Yes. No auto-release |
| Named approver chooses Approve on the frozen ETag | Set Approved and allow one draft handoff | The approve decision itself |
| Approval package ETag does not match the item | Reject or restart | Yes |
| Actor lacks Approve Items | Block. Keep the audit | Process owner reassigns |
| Destination timeout after a write | Retry the same DuplicateKey | Confirm the existing DownstreamRef |
| Retention label or record lock blocks delete or move | Flag retention_conflict | Compliance contact. No bypass |
| Payment or bank-detail change | Never in this library | Entirely outside |
Human gates
A person keeps these decisions:
- Approve or reject every controlled item before a downstream draft
- Missing DocType, Owner, DuplicateKey, or invoice identity fields
- Duplicate reopen
- Stale version or ETag mismatch
- Unauthorized approval attempt
- Low-confidence or conflicting extracted fields
- Retention conflict
- Payment release and any supplier bank-detail change
A confidence score can send a document to review. It cannot approve the library item. It cannot pay a vendor.
Failure paths
| Failure | Expected status | Downstream | Payment |
|---|---|---|---|
| Required column empty | missing_metadata / Exception |
No write | Blocked |
| DuplicateKey already used | duplicate_key |
No second write | Blocked |
| Approval ETag ≠ current ETag | stale_version |
No write | Blocked |
| Actor not in the matrix | unauthorized_approval |
No write | Blocked |
| ConfidenceMin below policy | low_confidence_extraction |
No write until review | Blocked |
| Destination error after Approve | failed_downstream_retry |
Write count stays 1 | Blocked |
| Label or record lock blocks the action | retention_conflict |
No bypass | Blocked |
| Any payment or bank-detail change | Forbidden | Forbidden | Forbidden |
Microsoft Graph exposes driveItem eTag and conflictBehavior values fail, replace, and rename. Use them for file identity and name collisions. Do not treat a renamed file as a new business document if DuplicateKey already exists.
Test cases
The seven Cedar & Quay cases are library-control fixtures. They do not measure OCR.
| Case | Input | Without a named approver | After the library control |
|---|---|---|---|
| Clean | INV-TP-2401, complete metadata, current ETag | ReadyForReview, 0 writes | Approve → one DownstreamRef. Payment entities = 0 |
| Duplicate | Second file, same ridgemont industrial supply co|inv-tp-2401 |
Duplicate | No review. No second write |
| Missing metadata | InvoiceNumber blank | Exception missing_metadata |
No write |
| Stale version | Approver acts on an old ETag | Exception stale_version |
Restart on the current version |
| Unauthorized | Member without Approve Items | Exception unauthorized_approval |
Blocked. Audit kept |
| Downstream retry | Destination timeout after Approve | DownstreamQueued | Two attempts, one stored DownstreamRef |
| Retention conflict | Delete blocked by a label | Exception retention_conflict |
Compliance owner. No bypass steps |
The SharePoint Library Schema walks each case on its own sheet.
What to measure
Record files received by channel, required-field exceptions, duplicate stops, stale-version restarts, unauthorized attempts, approvals, destination attempts, destination writes, and open exception age. Put your numbers in the schema workbook. Keep them as operational counts, not as a savings, cycle-time, or compliance-percentage result.
There is no live tenant metric here, and no Flowgrammer customer SharePoint case.
Microsoft's pay-as-you-go table (accessed 8 September 2026) lists USD meters such as prebuilt $0.01 per page and structured or freeform $0.05 per page, charged per model applied on upload and on updates. Recheck that page on publish day. Do not convert those figures to CAD here.
How to use the library schema
The paired asset is an editable workbook, not a Microsoft template and not an e-sign kit.
- Open ReadMe and read the layer boundary.
- Fill DecisionRecord: folder versus metadata, major/minor, content approval, checkout.
- Confirm the five content types and the column dictionary.
- Separate business Status from ModerationStatus.
- Map roles to SharePoint groups. Named approvers only.
- Walk Case01 through Case07 and record expected writes.
- Answer the retention questions. Labels alone are not a compliant records program.
For extraction evaluation depth, use the IDP Requirements Worksheet.
Realistic limitations
- A library schema does not prove goods were received or that a supplier is genuine.
- Labeled-text and checklist cases do not measure OCR accuracy.
- Classic versus modern Approvals behavior can differ by tenant. That gap is
needs_tenant_proof. - Retention policies and labels can retain files and can lock records. They do not certify compliance.
- Connector file-size limits and service file-size limits can differ. Recheck both on publish day.
- This system does not pay anyone and does not change supplier bank details.
- This guide does not rank vendors, and it is not a Power Automate, Azure, or e-sign product walkthrough.
Next step
Download the SharePoint Library Schema and fill the decision record, columns, and seven cases.
If the library purpose, named approvers, or the draft destination are still unclear, start with an AI Success Audit. If those pieces are already named, book a fit call to scope an AI Automation Systems build.
Sources
- Flowgrammer, "Document Processing Automation: What to Automate First", Flowgrammer, accessed 2026-09-08, /insights/document-processing-automation
- Flowgrammer, "Intelligent Document Processing (IDP): How It Works", Flowgrammer, accessed 2026-09-08, /insights/intelligent-document-processing
- Flowgrammer, "Invoice Processing Automation: Workflow & Test Pack", Flowgrammer, accessed 2026-09-08, /insights/invoice-processing-automation
- Microsoft, "Require approval of documents in SharePoint using Power Automate", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/sharepoint/dev/business-apps/power-automate/guidance/require-doc-approval
- Microsoft, "Understanding permission levels in SharePoint", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/sharepoint/understanding-permission-levels
- Microsoft, "Customize permissions for a SharePoint list or library", Microsoft Support, accessed 2026-09-08, https://support.microsoft.com/en-us/sharepoint/lists/sharepoint-sharing-and-permissions/customize-permissions-for-a-sharepoint-list-or-library
- Microsoft, "How versioning works in lists and libraries", Microsoft Support, accessed 2026-09-08, https://support.microsoft.com/en-us/sharepoint/lists/documents-and-library/how-versioning-works-in-lists-and-libraries
- Microsoft, "Enable and configure versioning for a list or library", Microsoft Support, accessed 2026-09-08, https://support.microsoft.com/en-us/sharepoint/lists/documents-and-library/enable-and-configure-versioning-for-a-list-or-library
- Microsoft, "Version history limits for document library and OneDrive overview", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/sharepoint/document-library-version-history-limits
- Microsoft, "Add columns to a content type", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/sharepoint/add-columns-content-type
- Microsoft, "Introduction to managed metadata", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/sharepoint/managed-metadata
- Microsoft, "Overview of document processing for Microsoft 365", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/microsoft-365/documentprocessing/syntex-overview
- Microsoft, "Overview of document processing model types", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/microsoft-365/documentprocessing/model-types-overview
- Microsoft, "Overview of structured and freeform document processing", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/microsoft-365/documentprocessing/form-processing-overview
- Microsoft, "Pay-as-you-go pricing for document processing for Microsoft 365", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/microsoft-365/documentprocessing/syntex-pay-as-you-go-services
- Microsoft, "Use the document processing model in Power Automate", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/ai-builder/form-processing-model-in-flow
- Microsoft, "Vendor invoice processing architecture", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/power-platform/architecture/reference-architectures/vendor-invoice-integration
- Microsoft, "Learn about retention for SharePoint and OneDrive", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/purview/retention-policies-sharepoint
- Microsoft, "driveItem resource type", Microsoft Learn, accessed 2026-09-08, https://learn.microsoft.com/en-us/graph/api/resources/driveitem
Frequently asked questions
What is SharePoint document processing?
It is the work of making one SharePoint library the system of record for intake, metadata, versioning, permissions, and named approval. Power Automate orchestrates. AI Builder or Azure Document Intelligence extracts.
Is this the same as Syntex or AI Builder?
No. Former Syntex pay-as-you-go services are now called document processing for Microsoft 365 and apply models in the library. AI Builder also powers structured and freeform library models, and it appears separately as the Process documents action in Power Automate. Azure Document Intelligence is the pro-code API.
Is SharePoint content approval an e-signature?
No. Content approval changes visibility and ModerationStatus. It is not a legally binding signature and it is not payment approval.
Can high-confidence extraction auto-approve a file?
Not as default advice. Confidence can route a file to a person. A named approver still releases the controlled record.
Do retention labels make the library compliant?
No. Labels and policies are tools with documented limits. They are not a records-management certification.
Who builds the Power Automate steps?
Power Automate owns triggers, Approvals, retries, and the draft write. The library contract in this guide is what those steps read and write.