FileMaker Custom Integrations

The Reconnect.Brisbane Claris FileMaker Developer conference gets underway tomorrow in Brisbane and it’s shaping up to be a great conference. With attendees from 9 countries and sponsors from 6 countries it’s going to have a real international flavour this year.

Databuzz is pleased to once again sponsor the Reconnect conference and I’ll be doing a short sponsor presentation where I’ll showcase our FileMaker integration solutions and also talk a little bit about some interesting custom integration projects we’ve worked on over the past year.

In addition to developing our integration solutions we work with customers all around the world helping them integrate their FileMaker solutions with a variety of platforms including:

Over the past 12 months we’ve worked on some interesting and challenging integration projects – here’s a summary of some of these:

Microsoft Office 365 – this integration involved working with the Microsoft Graph API to download emails from Office 365 so these could be viewed within FileMaker. We created a solution to download the emails from Office 365 and view them using a Web Viewer as well as any associated attachments. Webhooks were setup to receive notifications for new messages which triggered a FileMaker Server script to download the new messages.

GitHub – a client was using GitHub, the popular platform for software developers to manage code, version control etc, for tracking issues for their yacht including maintenance tasks. We helped integrate their customer FileMaker solution with GitHub so they could download issues from GitHub, edit these in FileMaker and upload edited issues and new ones with attachments to GitHub.

Amazon Business APIs – we worked with a charter school organisation in the USA to connect FileMaker with the Amazon Business APIs. This involved downloading Products from Amazon in bulk and creating Orders in Amazon and tracking these from FileMaker.

Macquarie Bank DEFT API – a client wanted to integrate with the Macquarie Bank DEFT API to generate welcome emails for DEFT registration, download Direct Debit Authorities, create new payments, search for transactions and more.

Cin7 – a client was using the Cin7 inventory management software and wanted to download sales orders and customers from Cin7 into their custom FileMaker solution for reporting. A FileMaker Server script schedule was created to download new orders from Cin7 weekly and upload those to their FileMaker solution.

If you’re attending Reconnect.Brisbane please come and say hello. Attendees will receive a discount coupon for 20% off all our integration solutions from our online store and one lucky attendee will win a free company license to one of our products as well.

I’ll also be co-presenting the Tips, Tricks, and Opinions you can’t ignore session after lunch on the 2nd day with Nicholas Orr from Goya where I’ll share some of my top time saving tips for faster FileMaker development.

‘Automate What You Hate’

With the move to remote working and the changes to social distancing since the onset of COVID-19 many businesses have been forced to evaluate their use of technology and quickly adopt solutions to fill in some gaps in their business processes that have changed under the coronavirus. Companies that never thought they could function with a remote workforce have been forced to adapt quickly – I’ve spoken to many employees at other companies who have helped their organisations transition to a remote workforce in under 2 weeks.

I’ve had a lot of conversations over the past 6 weeks with customers who have found themselves in two common situations:

  1. having been forced into working remotely they quickly need a new solution or integration (e.g. implementing eSignatures now that in person signing isn’t safe or transitioning from retail sales to online sales)
  2. they have been able to take the extra time they have to finally get around to some of those projects they have been putting off, such as getting an eCommerce store up and running or integrating two different software platforms to remove those repetitive manual tasks.

Earlier this week Shopify, a leading global commerce company, announced that the number of new stores created on Shopify grew 62% between March 13 and April 24, compared to the prior six weeks. In the 6 week period since March 13, local orders have more than doubled in English-speaking geographies. As retailers suspended their in-store operations retail merchants managed to replace 94% of lost point-of-sale orders with online sales over the same period.

Earlier this week I attended the DocuSign Momentum Live APAC which was streamed live where a number of DocuSign customers shared their experiences and best practice examples of how they’re keeping business ticking in the current climate. We saw examples of how businesses are using the DocuSign platform to complete JobKeeper application forms so they can access the Australian Federal Government JobKeeper scheme payments. This form can be bulk sent to employees and a complete audit trail can be maintained.

DocuSign have a dedicated page on how they are supporting the global response to COVID-19 in healthcare, government, education, and business. We’ve helped a number of businesses in the past 6 weeks quickly adopt DocuSign for sending out agreements to their customers which, for now at least, can no longer be signed in person. Using eSignature allows you to have agreements signed remotely anywhere from any device – using our fmESignature Link (DocuSign Edition) solution you can also integrate this into your existing FileMaker solution.

I came across an article recently on the Inside Small Business website titled Automate what you hate which talks about the benefits of automation and how small businesses can use technology to replace boring manual repetitive tasks. The article goes on to give four reasons to automate the repetitive tasks you hate.

Here at Databuzz we’re big fans of using technology to automate repetitive manual tasks and leveraging the power of APIs to integrate various systems, something we’ve written about many times before. If you find yourself with some extra time during the COVID-19 shutdown we would encourage you to use this opportunity to look at ways you can streamline your current workflows and remove any unnecessary manual tasks, particular those that involve double data entry. If you’ve been planning to integrate your FileMaker solution with another platform now is a great time to make these system changes to your business and automate what you hate.

Here’s some ideas based on conversations and work we’ve done over the past few months helping customers on ways you can change the way you communicate with customers or integrate your FileMaker solution with other platforms:

  • SMS is a great alternative replacement for certain communications, such as appointment reminders, special offers, school alerts to parents. We saw a great example recently with a doctor in the USA using our fmSMS solution to implement a “Doctor by Text” service
  • If you have an online store and find yourself manually entering orders into your FileMaker solution look at whether you can integrate the two platforms. Most online stores have APIs that you can use to integrate with your FileMaker solution – if you’re using either WooCommerce or Shopify we have integration solutions already built that you can use to get up and running quickly.
  • eSignatures are becoming more popular with the social distancing rules and can help you remove paper and establish a digital audit trail and allow your customers, staff etc to sign documents on their own device at their convenience. Our fmESignature Link (DocuSign Edition) solution is proving very popular at the moment as it can help you get up and running with integrating eSignatures into your existing FileMaker solution
  • Accounting software integration: see our earlier article about the benefits of integrating your FileMaker solution with your accounting software. If you find yourself manually entering the same invoice, payment, purchase order etc in both your FileMaker solution and your accounting software there is a better way! If you’re using either Xero or MYOB AccountRight we have integration solutions already built to help you fastback an integration.

Automate Electronic Document Signing with FileMaker and DocuSign


For many years we’ve helped business both large and small with their workflow challenges, and one of the most common issues we see is managing the distribution and signing of standard business documents such as contracts, employee agreements, quotes and proposals. The solutions to these problems vary depending on a number of factors, including the type of document to be signed, the number of recipients, volume of documents and the location of recipients.

Over the past few years we’ve helped a number of customers integrate with DocuSign, one of the most popular electronic signature platforms. DocuSign helps organisations connect and automate how they prepare, sign, act-on, and manage agreements and allows users to sign electronically on practically any device, from almost anywhere, at any time.

With DocuSign you can create DocuSign Templates with merge fields that you sent to recipients for signing, or you can create a PDF on the fly and upload that at the time of sending the signing request. A common workflow solution integrating your custom FileMaker business app with DocuSign might look like this:

The process would typically work like this:

  • a FileMaker user is notified that a certain document needs to be sent to a customer for signing, such as a contract
  • the FileMaker user clicks a button that creates a custom PDF with any merged data for that customer with details on what actions the customer needs to take, such as signing on a particular page, entering their name or other details such as their date of birth
  • the FileMaker generated PDF is then sent to DocuSign with instructions to send this PDF to be signed to the specified customer, and DocuSign then sends a signing request email (you can customise the email subject and body)
  • the customer receives the email and electronically signs the document. DocuSign then notifies you that the document has been signed and you can then download the signed version of the document into a FileMaker container field

This type of tight integration between FileMaker and DocuSign has a number of benefits, including being able to manage the document signing process in one central place from start to finish. You don’t need to give your FileMaker users access to DocuSign as everything is managed from within FileMaker and you have access to the signed documents from FileMaker. You can even setup Webhooks to have FileMaker automatically notified by DocuSign when a document has been signed and have FileMaker download this automatically.

You will need to sign up for one of the DocuSign API Plans – (US, UK and Australian plans) which have a number of tiers depending on the number of documents you need to send each month and other additional features.

Here’s a short video demonstrating how a FileMaker DocuSign integration might work (YouTube link):

If you would like to discuss integrating DocuSign with your FileMaker solution please get in touch for a free initial consultation to discuss your requirements.

FileMaker and the Twilio API

Here at Databuzz we’re longtime fans of Twilio, the company with the strange name that offers a Cloud communications platform, providing the building blocks to add messaging, voice, and video in your web and mobile applications.

For many years we’ve been working with the Twilio API, primarily to send and receive SMS messages using our fmSMS FileMaker solution. Twilio provides great coverage and very competitive pricing and we’ve been recommending Twilio to our customers for many years – when they ask which SMS Gateway we use at Databuzz we don’t hesitate to recommend Twilio.

Earlier this year we had the chance to attend the first Twilio Engage Sydney and learn more about the company’s strategy and participate in some great product demos. Twilio are opening 2 new offices in Melbourne and Sydney and it was great to be able to meet some of their Australian based staff in person.

We’ve written about how we use the Twilio API in the past, including a demonstration for Voice Calling with FileMaker and Twilio as well as sending Emojis from fmSMS. We’ve also made some custom solutions for customers to allow them to send and receive MMS (picture messages) messages from the FileMaker platform.

Over the past few months we’ve had the opportunity to work on some additional Twilio APIs that enhance the functionality found in our fmSMS solution, including:

  • adding phone number lookup functionality via the Twilio Lookup API
  • adding the ability to poll Twilio for any incoming messages that may not have been delivered due to a local server/Internet outage when using the regular Webhooks

For some customers the ability to check a number before sending an SMS or MMS message is important as it allows you to verify that the number you are about to send a message to is indeed a mobile number. For example you might have a list of Customers and associated phone numbers, but you aren’t sure if the number is a landline number or a mobile number. Using the Twilio Lookup API you can make a request to verify a number and receive information about the carrier and optionally (where supported) the caller name, allowing you to confirm the veracity of the number.

fmSMS includes the necessary PHP files to receive incoming messages to your Twilio number and have these pushed automatically to your FileMaker Server, but there may be times when your server or Internet connection is offline but you would still like to download any missed messages into your FileMaker solution. We’ve helped customers add the ability to “poll” the Twilio Messages API for any incoming messages to their Twilio number that they might have missed during a planned or unscheduled outage.

We’ve put together a simple demonstration video showing these in action – you can watch the video inline below or directly on YouTube:

Andrew Duncan from Databuzz to speak at WordCamp Sydney 2018

 

WordCamp Sydney 2018 is on 28 & 29 July this year at the University of Technology Sydney. Databuzz is pleased to announce that Andrew Duncan will be speaking this year on WooCommerce integration using the WooCommerce API.

Databuzz are big fans of WooCommerce and WordPress – we’ve been using WordPress and WooCommerce for many years to run our websites and eCommerce platforms. Our fmEcommerce Link (WooCommerce Edition) solution is one of our most popular products and we can continue to update this with new features and improvements.

We look forward to meeting up and discussing all things WordPress – you can get tickets and more information from the WordCamp Sydney 2018 site here:

https://2018.sydney.wordcamp.org/

FileMaker, cURL and HTTP Response Codes

When FileMaker Inc. released the FileMaker 16 Platform last year they included a feature I had been requesting for over 15 years – native cURL support. cURL is a command line tool and library for transferring data with URLs – you’re probably familiar with the HTTP, HTTPS, FTP and SMTP protocols. cURL is important as it allows us to interact with external web services/APIs directly from FileMaker Pro, FileMaker Go, FileMaker WebDirect and FileMaker Server. For example we can use FileMaker to send an SMS, upload an Invoice to Xero or MYOB, or download Orders from eCommerce platforms like WooCommerce or Shopify.

Starting with the introduction of the Insert From URL script step in FileMaker Pro v12 we’ve been able to interact with URLs with some limitations:

  • FileMaker Pro v12 introduced the Insert From URL script step which supported http, https, ftp, ftps, and file protocols. A field was required to download the result/response into and it didn’t support performing an HTTP/S POST request – only GET requests were supported (most APIs require a POST request to create/update records via the API). There was also no ability to customise the HTTP request, e.g. to set HTTP Headers which are often required for many APIs
  • FileMaker Pro v13 extended the Insert From URL script step to both HTTP GET and HTTP POST requests using the httppost and httpspost custom schemes that you specified when constructing the URL (e.g. “httppost://www.filemaker.com/path?fname=Bob&lname=Smith”). You still couldn’t specify HTTP Headers and still required a field for the result

Given these limitations I rarely used the Insert from URL script step until FileMaker Pro 16 was released. Since the FileMaker Pro v6 days I have been using a number of different plug-ins to perform HTTP requests – initially I had a custom plug-in developed, then switched to the Troi URL plug-in and then to the BaseElements plug-in. Databuzz sponsored the development of some specific functions that we needed and the BaseElements plug-in provided us with cURL support and a number of other related functions, such as JSON encoding and parsing and XPath for parsing XML data. The BaseElements plug-in has provided us with the functionality we needed that was missing in the FileMaker platform, but as a plug-in was required it did have a number of disadvantages:

  • FileMaker Go does not support plug-ins (you can now use the iOS SDK). You could use FileMaker Server script schedules and Perform Script on Server as a workaround but this required the FileMaker solution to be hosted by FileMaker Server so wouldn’t work for solutions running locally on the iPad or iPhone
  • running scripts under FileMaker Server required the plug-in to be installed on the server, which can be done easily as long as the appropriate permissions have been granted in the FileMaker Server Admin Console. Some hosting providers also disabled the option to install plug-ins on shared servers.

With the release of the FileMaker 16 platform came the ability to specify one or more supported cURL options as a calculation when using the Insert From URL script step, as well as the ability to specify a variable as the target (no more fields required!). This was a game changer as far as working with APIs was concerned – now the entire FileMaker Platform could natively make HTTP requests, set HTTP Headers, and encode JSON data and parse JSON. All of our integration solutions were using the BaseElements plug-in, so we started to work on adding native support for FileMaker Pro v16 users by switching from the BaseElements plug-in functions to using the native Insert From URL script step, cURL options and JSON functions.

One function for which there was no native equivalent was the BE_HTTP_Response_Code function which returns the HTTP response code value from the last request. HTTP Response Codes are issued by the server in response to a request and can be used to determine whether the HTTP request was successfully completed or if there were issues associated with the request. For example 200 is the standard response for a successful request and 401 means there was an authentication issue and the request failed. It’s important when working with APIs to check the HTTP Response Code to confirm that the request was processed successfully – the documentation for each API will usually specify what response code indicates a successful request (typically 200 or 201).

The HTTP Response Code is contained with the HTTP Response Headers which are returned by the server processing the request. You need to specify the following cURL option to get the response headers returned into a FileMaker variable:

" --dump-header $responseHeaders"

The $responseHeaders variable will then contain something like this after the Insert From URL script step has been performed:

HTTP/1.1 200 OK
Date: Wed, 13 Jun 2018 04:45:17 GMT
Server: Apache/2.4.26 (Red Hat)
X-Powered-By: PHP/5.6.35
Transfer-Encoding: chunked
Content-Type: application/json; charset=UTF-8

In the above example you can see the first line of the response headers contains the response code: “HTTP/1.1 200 OK”. Other common response codes that you might encounter include:

HTTP/1.1 100 Continue
HTTP/1.1 403 Forbidden
HTTP/1.1 201 Created
HTTP/1.1 302 Found
HTTP/1.1 301 Moved Permanently

You can use standard FileMaker functions to get the actual numerical response code from the first line of the response headers, e.g.:

Let ( [
t1 = GetValue ( $responseHeaders ; 1 ) ;
t2 = Substitute ( t1 ; " " ; "¶" ) ;
n1 = GetValue ( t2 ; 2 )
] ;

n1

) // Let

This all works fine as long as the Response Headers only contain a single response code, but sometimes the server will return multiple response codes. For example the response might include a redirect or a continue and look like this:

HTTP/1.1 100 Continue

HTTP/1.1 403 Forbidden
Server: nginx/1.14.0
Date: Wed, 13 Jun 2018 07:41:16 GMT
Connection: keep-alive

The response code we are after is the “403” value and not the “100” value, so our above calculation would return the wrong response code in this situation. We started working on a custom function that would look for the last “HTTP/1.1” string and then get the code following this, but that failed pretty quickly when working with a server that included the string “HTTP/1.1” elsewhere in the response headers.

We’ve settled on using this custom function which so far is returning the correct result, at least with the APIs and servers that we have tested it on so far. We would much rather have a native function for this which does the equivalent of what the BaseElements BE_HTTP_Response_Code function does without having to try to locate and find the last response code from the response headers. From researching this it appears that there is already a cURL option for this:

-w "%{http_code}"

but unfortunately the -w option is not one of the FileMaker supported cURL options, so for now you’ll need to parse out the response code until FileMaker add support for the -w option. We’ve added this to the FileMaker Product Ideas discussion area – if you would also like to see this feature in a future version of FileMaker platform you can vote up the idea here.

FM Starting Point Custom Integrations

Over the past few years we’ve performed a number of customisations for customers using the popular FM Starting Point template from Richard Carlton Consulting. FM Starting Point is a free FileMaker CRM template designed for use with the latest version of FileMaker Pro, and is focused on small businesses, work groups, and non-profit organisations. FM Starting Point manages business contacts , accounts, products, projects, and more – since it’s first release 5 years ago it has been downloaded over 490,000 times.

Over the past 5 years we’ve performed the following customisations of FM Starting Point for our customers:

  • added the ability to send single/bulk SMS messages and receive incoming SMS messages (fmSMS integration)
  • integrated our fmAccounting Link (Xero Edition) solution so you can upload Contacts, Invoices, Bills, Payments and more from FM Starting Point to Xero
  • added the ability to send single and bulk HTML emails
  • integrated our fmEcommerce Link (WooCommerce Edition) solution so you can push Products from FM Starting Point to WooCommerce and download Orders from WooCommerce to FM Starting Point
  • integrated our fmEcommerce Link (Shopify Edition) solution so you can push Products from FM Starting Point to Shopify and download Orders from Shopify to FM Starting Point
  • integrated our fmAccounting Link (MYOB AccountRight Edition) solution so you can upload Contacts, Invoices, Bills, Payments and more from FM Starting Point to MYOB AccountRight

If you would like to discuss customising your version of FM Starting Point please get in touch for a free initial consultation to discuss your requirements.

 

Gravity Forms Integration with FileMaker

Gravity Forms is a popular Form plugin for the WordPress platform, allowing you to create simple or advanced forms to capture data on your WordPress website. Over the years we’ve helped many customers with retrieving data from their Gravity Forms using a variety of methods, including:

  • simple CSV file download from Gravity Forms then import that CSV file into FileMaker
  • using the FileMaker PHP API to have Gravity Forms data automatically ‘pushed’ to their FileMaker solution each time an entry is submitted
  • using the External SQL Data Source feature to view the Gravity Forms data live from within FileMaker and create FileMaker scripts to download data

Each of these methods have their pros and cons: for some users the FileMaker PHP API integration is not an option, and for others they aren’t able to connect remotely to the SQL database as this is blocked by their web host. Downloading CSV files each day/week is also time consuming and cumbersome. Fortunately there is another method to use that has many advantages over these methods: the Gravity Forms Web API.

Using the Gravity Forms Web API we can dynamically query Gravity Forms from within FileMaker to check for new form entries and download those directly into our FileMaker solution, all within a few seconds. If you’re using FileMaker Pro v16 you can also use the new native JSON and cURL features to do this without requiring any FileMaker plug-ins – for older versions of FileMaker a plug-in is required to handle the API requests and cryptographic requirements. You can also setup schedules using FileMaker Server to have new form entries downloaded automatically (hourly, daily etc).

Here’s a short video demonstrating how we can download Gravity Forms entries directly into a FileMaker solution (you can also view it directly on YouTube):

If you would like to discuss integrating Gravity Forms with your FileMaker solution please get in touch for a free initial consultation to discuss your requirements.

fmEcommerce Link (Shopify Edition) and Metafields

Metafields in Shopify are like custom fields – they allow you to attach additional metadata or information about a particular Shopify store resource, such as a Product or Product Variant. For example you might need to store information about washing instructions for clothing that you sell or you would like to store a manufacturer and supplier SKU for each Product Variant.

In our fmEcommerce Link (Shopify Edition) solution we support the downloading and uploading of Metafields for Products and Product Variants (the Shopify API allows you to attach Metafields to a number of resources – see here for the full list). Shopify unfortunately does not have an interface for store owners to view or edit the Metafields for your store – it is considered a developer/designer feature so you will need to use a Shopify App to create, edit or delete Metafields in the Shopify Admin page.

Here’s some screenshots showing the Metafields for a Product:

and a Product Variant:

Using fmEcommerce Link (Shopify Edition) you can add, edit and delete these Metafields and using a Shopify app you can also view them. Here’s a screenshot showing the Metafields using the Metafields Editor app:

Here’s some links for learning more about working with Shopify Metafields:

If you would like us to add support for Metafields elsewhere in the fmEcommerce Link (Shopify Edition) solution please let us know.

fmAccounting Link (MYOB AccountRight Edition) Updated for Bills

We’ve just released an update to fmAccounting Link (MYOB AccountRight Edition), our FileMaker solution for integrating with MYOB AccountRight in Australia and New Zealand, with examples for working with Bills in MYOB. With v1.25 of fmAccounting Link you can now use FileMaker to:

  • download Bills from AccountRight to FileMaker (either all Bills or filtered by Bill Date)
  • create Bills in FileMaker and upload them to MYOB
  • convert a Purchase Order to a Bill in FileMaker and upload the converted Bill to MYOB

This is a free update for all existing customers – you can view the full release notes on our version history page.