Custom Marketplace
What is the Custom Marketplace?
The Inform Marketplace is where users browse and connect health apps and devices so their data will be available to your system. The Custom Marketplace is one of three "flavors" of the Marketplace and it supports Cloud and Cellular sources only.
The Standard Marketplace is a Inform API JSON endpoint that returns all of the details you will need to build your own marketplace or connection list. Using the results you get from the Custom Marketplace, you can build your own user experience that is styled the way you want. The JSON is the same data we use to build our Standard Marketplace so there won't be a discrepancy in how the connection process works.
You have full control to build the behavior that your users will need -- just keep in mind that users will still need to be routed to the appropriate source for Cloud connections and that user experience is controlled by the source.
Are you looking for an experience that supports mobile?
If you're looking for a customizable solution that supports Cloud, Cellular, and Mobile, then Unified Sources is for you.
What is the User Experience like?
The user experience is whatever you'd like it to be. Since Inform is simply providing you with details in a JSON format, you can use those details -- plus any that you want to add -- to create a connection workflow that works best for your users. All the styling and behavior is built by you.
If you'd like to get an idea of what a typical workflow might look like, then have a look at how our Standard Marketplace works.
The Standard Marketplace is designed to support Cloud and Cellular sources, just like the Custom Marketplace, and it provides a full, but basic, experience that you can use right away as either your own connection workflow or as inspiration for a custom workflow that you build using the Custom Marketplace.
The Custom Marketplace is great for Cellular sources
The Custom Marketplace is a great option if you want to use Cellular sources. With the Custom Marketplace, you can show or hide any sources that it returns.
Want to display Cellular Sources and let your users enter in their device identifier? You can do that with the Custom Marketplace.
Want to get fancy and hide the Cellular Sources so your users don't have to worry about entering complicated device identifiers? You can do that with the Custom Marketplace too (along with the appropriate Direct Connection endpoint for the Cellular source).
Guide the user through the connection of their Cellular and Cloud Sources using the Custom Marketplace details to power your user experience, then be sure to display feedback to them (a success or failure) based on the response you get to your redirect uri. You will receive a connection event in the Streaming API for all successful Custom Marketplace connections, if your stream is set up to receive them.
If your user ever needs to disconnect from a source, they will need to navigate back to the Custom Marketplace where you should display a Disconnect button for any connected sources. You'll be able to tell whether a source is connected or not from the JSON returned by the Custom Marketplace.
Please plan your user documentation and user experience so that users can get back to the Custom Marketplace to disconnect, when appropriate.
How do I use the Custom Marketplace?
The Custom Marketplace JSON can be requested simply by adding &format=json
to the end of the user's marketplace URL, which you can get from the user's profile.
For example, if the user's marketplace url is:
https://syncmydevice.com/?token=4deee4c7c81e9b652d22c8999beaf7c972daa513c6cf6aaa6af636f8117bf929
then that user's Custom Marketplace can be accessed at:
https://syncmydevice.com/?token=4deee4c7c81e9b652d22c8999beaf7c972daa513c6cf6aaa6af636f8117bf929&format=json
BUT you're not done yet...because....
Redirect URI is Required
When using the Custom Marketplace, clients must append a
redirect_uri
query parameter to theconnect_url
anddisconnect_url
provided in the Custom Marketplace JSON response.
The redirect_uri
ensures that users are properly redirected following the connection process, otherwise, the user will be redirected to the Standard Marketplace and not your super awesome custom connection experience.
Any redirect_uri
that you specify must begin with https://
or the resulting URL will fail. You should also url-encode your uri.
Here's an example of how to indicate the redirect_uri
for a connection. In this example the user will be redirected to https://www.google.com (don't do this, of course -- this is just an example):
https://syncmydevice.com/?token=4deee4c7c81e9b652d22c8999beaf7c972daa513c6cf6aaa6af636f8117bf929&format=json&redirect_uri=https%3A%2F%2Fwww.google.com
Last, be sure that you can handle the status
parameter that we'll append to your redirect_uri
so that you'll know if the connection succeeded or failed and you can guide the user appropriately.
What Does the Custom Marketplace look like?
Whatever you like! You're going to be building the user experience and styling it however you'd like.
Here's an example of what you get from the Custom Marketplace. These details will help you with your display so that you don't have to go hunt down a bunch of info like source name, logo images, and the like. We'll maintain all of this info for you.
You just have to build the user experience to display what you want from this info and route the user properly for connections and disconnections.
https://syncmydevice.com/?token=ae4fdfd364e42137af14b207eSAMPLEbcdefaae7b99e3e49361SAMPLE1eb0d&format=json&redirect_uri=https%3A%2F%2Fwww.google.com
[
{
"type": "omron",
"connected": true,
"logo_url": "//assets.prod.validic.com/cmapi/images/sources/omron.png",
"disconnect_url": "https://syncmydevice.com/connect/omron?token=ae4fdfd364e42137af14b207eSAMPLEbcdefaae7b99e3e49361SAMPLE1eb0d"
},
{
"type": "polar",
"connected": true,
"logo_url": "//assets.prod.validic.com/cmapi/images/sources/polar.png",
"disconnect_url": "https://syncmydevice.com/connect/polar?token=ae4fdfd364e42137af14b207eSAMPLEbcdefaae7b99e3e49361SAMPLE1eb0d"
},
{
"type": "fitbit",
"connected": true,
"logo_url": "//assets.prod.validic.com/cmapi/images/sources/fitbit.png",
"disconnect_url": "https://syncmydevice.com/connect/fitbit?token=ae4fdfd364e42137af14b207eSAMPLEbcdefaae7b99e3e49361SAMPLE1eb0d"
},
{
"type": "garmin",
"connected": true,
"logo_url": "//assets.prod.validic.com/cmapi/images/sources/garmin.png",
"disconnect_url": "https://syncmydevice.com/connect/garmin?token=ae4fdfd364e42137af14b207eSAMPLEbcdefaae7b99e3e49361SAMPLE1eb0d"
},
...
]
Updated 21 days ago