FileMaker Cross Platform Notifications
Keeping a large team of mobile users informed and updated with information vital to their jobs is essential in this modern world, but not everyone has an iOS device and even if they did, it’s not practical to have the app open and waiting for the information. One solution is to keep your users informed with the use of notification. Using native FileMaker and a service called Pushover we can easily leverage cross platform notifications with advanced features like message priority, which allows you to repeat a notification until the user acknowledges it.
Creating a Pushover Account
To begin we will need a free account with Pushover.net. All pricing involved with Pushover.net is through the purchase of their apps for a users device. Each app costs 5 dollars, and then you are able to send up to 7,500 notifications a month without any additional cost. After you have created an account you need to navigate to the Pushover Apps & Plugins page and create a new application. Once you have created a new application copy and paste the application API Key into the demo file.
Retrieving a Users Pushover ID
We can easily download a user’s Pushover ID into FileMaker by making a simple post call using Insert from URL. The url you will be posting to is api.pushover.net/1/users/login.xml and the api requires 2 parameters, email and password. Below is an example of the full URL request.
insert from url "httpspost://api.pushover.net/1/users/login.xml?email=" & $email & "&password=" & $password
One great feature of Pushover you can take advantage of is groups. Groups allow you to manage your users and then send out a notification to that segment of users all at once. You can create a new group from the Pushover Groups page. Once you have created your group you can use the generated group key to add and remove users, and disable/enable a user in the group all from within FileMaker using a simple rest api. Another useful feature of groups in Pushover is the subscription feature that allows for anonymous users to sign up to receive notifications and be automatically added to a group.
Sending a message is very similar to all the other api calls not surprisingly. The api endpoint for sending a message is api.pushover.net/1/messages.xml or api.pushover.net/1/messages.json. And there are quite a few parameters you can include to customize your message. Below is a list of all the available parameters.
- token – Pushover application token/id
- user – Can be userID or groupID
- message – Must be URL encoded
- retry – required if priority is 2. Time in seconds to wait between retries until acknowledged. Min of 30
- expire – Required if priority is 2. Time in seconds to keep retrying until acknowledged. Max of 86400 seconds or 1 day
- device – Device name, if left empty all of a user’s devices will be notified
- html – if set to 1, will allow for html tags in the message which will allow the use of the following tags; bold, italic, underline, font-color, and html links
- timestamp – a unix timestamp in CST time zone ex: 1331249662
- priority – The priority of the message ranging from -2 to 2. The default “Normal” priority of 0 will be set if left empty
- sound – if left empty, the users default will be used, if no default then “pushover” will be used
With a few api calls you can easily extend FileMaker with the ability to communicate with a mobile work force on virtually any device including iOS Devices, Android Devices, and Web/Desktops. Through the use of messaging groups you can also easily manage who should receive what alerts and when. Pushover’s advanced features give you a lot more control than something like text messaging and allows you to brand your notifications, change the messages sound, set the message priority, and manage whether a user is enabled or disabled in a group.
Did you know we are an authorized reseller for FileMaker Licensing?
Contact us to discuss upgrading your FileMaker software.
Download FileMaker Notifications Database
Please complete the form below to download your FREE FileMaker database file.