Integrating SharePoint with FileMaker to Streamline Invoice Retrieval

Cartoon houses in the front of the screen with a real laptop and person typing on it behind the houses.

Our client, a real estate investment company based in Michigan, uses Microsoft SharePoint as their primary inbox for all invoices for each property. The invoices come from several third-party providers, such as public power, utilities, maintenance, and lawn care, and arrive as records in a SharePoint list, with attached PDF documents.

The Challenge

Previously, staff had to manually monitor the SharePoint list, download invoice PDFs, and then enter data into their Claris FileMaker solution to track and process invoices. This reality created a labor-intensive workflow with potential for delays and errors, especially when managing large volumes of vendor invoices across multiple properties.

They wanted to automate this process and also update the status in SharePoint as each department performs tasks on the invoice record in their solution.

Since SharePoint can be configured in a number of different ways, we had to ensure that the proper permissions were set up in SharePoint (using Azure) and then retrieve the exact field names used for the custom fields in SharePoint.

How We Did It

Getting the authentication to work in FileMaker boiled down to creating proper headers in the cURL options:

'-X POST --header ' & Quote ( 'Content-Type: application/x-www-form-urlencoded' ) &' 
--data-urlencode ' & Quote ( 'grant_type=client_credentials' ) & ' \ ' &
'--data-urlencode ' & Quote ( 'client_id=' & $client_ID & '@' & $realm_id ) & ' \ ' &
'--data-urlencode ' & Quote ( 'client_secret=' & $secret ) & ' \ ' &
'--data-urlencode ' & Quote ( 'resource=' & $principal & '/' & $host & '@' & $realm_id ) & ' \ ' &
'-D $responseHeaders --showerror'

Once the authentication was working, querying SharePoint using the ‘GetByTitle’ endpoint was easy:

'https://domain.sharepoint.com/_api/web/lists/GetByTitle('ListName')/items?$select=' & $fields & '&$filter=' & $filter

The response for each list item included the metadata array, which holds the ServerRelativeURL endpoint for each file. Downloading the file into a container was just a matter of using ‘Insert from URL’ into the target container field:

'https://accessgroupllc.sharepoint.com/_layouts/15/download.aspx?SourceUrl=/List/filename.pdf'

The Outcome

Our custom SharePoint integration monitors list items at regular intervals and downloads the PDFs into the FileMaker container fields. Each invoice record is brought into FileMaker as a new record, ensuring that both invoice details and PDF documents are immediately accessible.

Additionally, as invoices move through various departmental workflows in FileMaker, the solution updates the status of each corresponding list item back in SharePoint, maintaining real-time synchronization.

While the setup process was fairly straightforward, taking only a few hours, we did need several weeks of testing to get the filters working as the client needed.

Thanks to the new integration, the client has dramatically reduced the time required to enter new invoices. The new process also eliminates human error and allows the staff to easily find and manage new invoices as they come in. 

Do you use SharePoint and FileMaker in your organization? We can create a custom SharePoint integration that matches your business workflows. Contact us for a free consultation.

Scroll to Top