Written By: Andreas Åström
I think I can safely say that many developers, like myself, have experimented a couple of times or more with this before — the “Custom area”. A great opportunity for integrations and customizations is usually the thinking of the product companies who offer this area. This area can seem boring or uninspired which is a great reason to hack it.
But first, what exactly are custom spaces and why is it that I dislike them?
A “custom space” is the native space where other developers are allowed to build customizations and integrations such as building some kind of workflow trigger in a third-party application.
So the problem that I usually encounter is that the “custom space” is often located (in UI terms) in a place where it doesn’t quite make any sense from the end user’s side. It is very common for this area to be placed in the bottom of the page or within some kind of sidebar. This area often tends to be way too far away from where I would like it to be placed in order to get the best use out of it. I think of it like storing a frying pan in the garage instead of the kitchen, it just simply wouldn’t get much use from there.
For us at GetAccept it’s important that the integration is located close to the object that you actually are working with in the system. We know that location is super important to having our application become a natural step in the daily workflow, otherwise it’s easy for the user to forget about the integration or to find looking for the app too time consuming. If this happens, it means that we have failed with our main goal of helping salespeople close more deals.
So, how did I solve this problem? Well, it took some time to figure out a good solution, but i’m pretty happy with the result I figured out.
After doing some researching for a few hours, I decided upon building our integration as a Chrome extension. A Chrome extension, in this case, is exactly as the name implies — it’s an addon application that the user is able to install directly to their browser.
This extension works in its own “environment” and loads after the main page has already been loaded. This means that the developer is then able to modify features and interfaces on that main page.
The ability to modify the interface is something that I really like and have been using a lot of during the development phase of the integration.
The extension gave us the opportunity to add listeners that trigger on specific configured URLs. This made it possible to change views, hide/show information, and much more to make the user’s experience even better.
After this I could start building workflows that allow the user to send out documents for tracking and signing through GetAccept in a well-integrated way. Everything is in a direct connection to the main object.
To build integrations in this way was new to me. It was challenging, educational, and fun and definitely something I will do again. Below I have listed some of my pros and cons to these types of integrations.
In addition to being able to make view manipulations that I needed — I also find these elements really great and useful.
The possibility to push out updates for every installation of the integration at the same time is awesome. Our goal in the development department at GetAccept is to add a lot of small features often rather than drop one big fix once a year. This gives us the possibility to be adaptable and to help our customers even more on a consistent scale.
Numbers is the key
The statistics of downloads and usage, and the feedback on the Google marketplace is another part that I really like. It’s always an important key to know how many downloads there are and what the users thinks about the integration so that my colleagues and I can prioritize where to focus our work.
The possibility of single installs
An integration that is easy to install means everything to us. I’m working at a SaaS company that wants our customers to be up and running with our platform in only a few minutes and this methodology should of course also apply to our integrations. By using Chrome extensions the end-user can install the integration by themselves and start using it without any configuration.
No access groups or user policies
This is maybe my favorite feature outside of the view manipulation. This means that only the users who needs the integration have to install it. If you don’t need it, you don’t need to install it.
I have worked a lot with access groups and user policies before and I know that this is often quite complex and can be different for every organization. Instead of worrying about this, we can provide information on how and why the user installs the extension, and leave the rest up to them.
Of course, there’s also a negative side to using Chrome extensions. One of the drawbacks is that they only work for users running Google Chrome as a browser, but luckily the large majority of users do use this browser (Almost 80% of all Internet browsing is done through Chrome according to W3C).
There’s also the disadvantage of using Chrome Extensions, in that they don’t work on mobile devices, only desktop installations.
Lessons learned and recommendations for others.
With great power comes great responsibility
Building Chrome extensions gives you, as a developer, great opportunities to go beyond the frameworks and guidelines that the product company has already setup. With this power, you run a risk of negatively affecting the product by destroying or manipulating their UI in a way that makes their product unrecognizable, and the recognition factor is a major part of many companies’ brands.
Because of this, try to follow the design patterns as much as you can to make the integration fit as well as possible into the product you integrate with. For example, try to use the same font, types of buttons, etc.
Dare to challenge and think new
My second recommendation is a dare to challenge yourself and think differently. Perhaps your innovative way of building your integration can help not only you, but also the product company to find new and better solutions that suit both of you better. Dare to come up with questions and suggestions. It helps all of us.
Take a look at GetAccept yourself via the Pipedrive Marketplace.