View all of your contacts and opportunities on a map, and filter by pipeline.
Functionality Overview
This app basically does what it says on the tin, so I’ll try not to overcomplicate things with too much detail.
Basically, you’ll get a map like the one above.
This app has a few key features:
- ¶ It can be embedded on your location side menu
- ¶ It can be embedded on a custom dashboard
- ¶ It allows filtering by opportunity pipeline and stage
- ¶ Contacts are colored by opportunity status
- ¶ Opportunities are updated in real time
- ¶ Contacts are updated in real time
Here is a quick overview of this functionality:
Ready to Install?
When you’re ready to install any app, click the link below to be taken through our installation wizard which can help you get it installed!
Backfill Delay
Once you install the app, your data will begin filling in.
This process can take a while, as it needs to iterate through every single contact within each location, and populate the data.
I’ve seen this process take about 30 minutes on a location with 1,000 contacts, so just prepare to wait the respective amount of time for all of your contacts to appear on the map.
After the backfill is complete, all other updates should be processed in real-time.
Embed on Sidebar
You can easily embed the map to be shown on the sidebar in your location like the image below.
To do this, you’ll need access as the agency owner to do the following:
- Switch to Agency View if you haven’t already
- Head to Settings in the bottom left
- Click on Custom Menu Links in the left-side menu
- Click on the blue Create New button at the top right
- Choose an icon and title for the link
- Paste the following into the URL field
- Leave When Clicked as default
- Select only “Sub-Account’s sidebar” as the Sidebar Preference
- Select which accounts you’d like to have the link (maybe the ones where you installed the app?)
- Select the role(s) you want to be able to view the sidebar item
- Finally, hit Save
https://platform.streamlined.so/interfaces/public/mapper/{{location.id}}
Embed on Dashboard
You can also embed the map as a widget on one of your dashboards as shown in the image below.
To do this, it’s actually very simple.
If you’d like for all of your locations to share this map on a custom dashboard, you can follow the instructions in How to duplicate a workflow to all sub-accounts, but add the dashboard to the snapshot instead of a workflow.
Here are the instructions for setting it up:
- Head to the Dashboard section on the sidebar from within a location
- Click on the pencil icon in the top right to edit the dashboard
- Click on the blue Add Widget button at the top right
- Select Elements from the Widgets, Elements, and Themes options
- Select the Embed option from the list of elements
- Add a title, and note you can hide this title under Advanced Settings
- Leave the Type as URL, and paste this into the URL field:
- Once you press save, your dashboard should look something like this:
- You may want to resize the new element so that it’s more usable, like in the image above
- Now you can hit the Save Changes button at the top to close the editor, and the map will be interactive
https://platform.streamlined.so/interfaces/public/mapper/{{location.id}}
Filter by Pipeline & Stage
This map allows you to filter contacts by their opportunity pipeline (and stage).
At the top left you can “Select a pipeline” which will filter all of the contacts on the map to only those with an opportunity in the pipeline you selected.
After you’ve selected a pipeline, you can also “Select a stage” which will filter all of the contacts on the map to only those with an opportunity in the stage you selected.
The “x” icon to the right of these dropdowns will appear after you’ve made a selection, and clears the filters.
On mobile (or any smaller viewport), you’ll need to scroll across the top to reveal the added elements.
Legend Color Details
Any marked "Won"
Any contacts marked with a green dot on the map have at least one opportunity that is marked as “Won” in its pipeline.
These are essentially your customers.
Open opportunities
Contacts marked with a blue dot on the map have no opportunities marked as “Won”, but some are marked as open.
These are essentially your open deals.
All marked "Lost"
Pretty self explanatory here.
If a contact on your map is marked with a red dot, all of their opportunities are marked as “Lost”
No opportunities
For contacts marked with a grey dot, they have either no opportunities, or they’re all marked as abandoned.
Opportunity Updates
To make sure you can view opportunities that are up to date, there is a fairly complex webhook processor running in the background whenever you make updates to your opportunities.
This means that as you move contacts around the pipeline, create new opportunities, create pipeline stages, create pipelines, or delete any of them, those changes should be reflected.
I have not found any edge cases that should make the map not stay up to date in real time.
The only exception to this is for creating pipelines or stages.
Because there is no webhook sent from the CRM to the app when one of these is created, we need to be smart about it.
Thus, as long as there is at least one opportunity in that pipeline, that pipeline will be synced to the map so you can filter by it.
That also means brand new pipelines that have never had a contact in them will not show up in the filters.
Contact Updates
This app costs me a small amount of money each time the map is displayed, and each time a contact address is “encoded”.
We’re using the Temporary Geocoding API from Mapbox to “encode” the contact’s address (i.e., 123 Main St, Washington DC, 12345) into a geographic point like:
{
"latitude": 142.123400123432,
"longitude": -124.2442002353
}
The cost of actually displaying the map is negligible, but generating these coordinates is a bit trickier.
To keep the contacts on the map up to date, we need to re-encode the contact’s address every time it changes.
The CRM sends a webhook to the app every time a contact is updated, but this applies to any kind of contact update.
If the app just re-encoded the contact’s address every time a minor update occurred (like adding a tag or updating a custom field), I’d go broke.
To fix this, every time a contact is updated we compare the previous address (stored in the database) to the new address from the updated contact.
Only when the contact actually changes do we re-encode that updated address.
All other contact updates like changing the name, email address, or phone number will update the database, and thus the map, instantly.
Post-Installation Pages
Agency-Level Installation
Sub-Account Installation
Ready to Install?
When you’re ready to install any app, click the link below to be taken through our installation wizard which can help you get it installed!
Frequent Questions
Do you offer custom development work?
Should I install your app at the agency level or location level?
What’s your support like?
How do I install your app?
Do you offer a free trial?
Can I request a feature or product?
Are there any usage limits on your apps?
Can I use your app on multiple accounts?
How do I uninstall the app?
Need to Get in Touch?
If you have any questions, concerns, or ideas, I’d love to hear them!
Visit the page below to book a call or get in touch right away.