Expand your capabilities with API
We strive to provide maximum possibilities to integrate amoCRM with various services and systems, so that you, our customers and partners, will be able to expand amoCRM functionality for yourself and others.
Writing your own widgets and integrations is not as difficult as it might seem at first glance. In order to facilitate the life of a developer, we provide instructions, recipes and descriptions.
What is Integration?
Any interaction with a third-party service is called Integration. A team or a sole developer, creating an Integration is called Integrator.
Integration is a Database record that identifies an external application that’s interacting with amoCRM.
To access amoCRM user data we ask developers to create an integration (enter the name and the description of the service, add a logo).
Upon creation, we provide secret keys required to access our API.
- A set of secret keys required for OAuth authorization (client_id, client_secret);
- Meta-data (the name, logo, description, etc.) is necessary for users to always know which service has access to their account and data;
- Widget archive containing JS-code executed in the amoCRM interface (which is not required).
We highlight 3 types of integrations:
This is the simplest type of integration where we create an integration only within one amoCRM account.
For example, when a developer/partner creates a unique feature that only one company/account needs (i.e. webform on a website, integration with unique Client software, etc.)Integrations of this type do not require moderation and will not be published in the amoCRM integrations marketplace. This is the most versatile and simple tool for implementing additional features for the particular Client. The creation of such integration takes up the following steps:
- Authorize as an account administrator
- Create integration in the Settings – Integrations section by submitting a simple form
- Copy secret keys, authorize using them and start exchanging data
The following method allows the usage of the Button on site, however, the list of the available accounts will be limited to only one account where the integration is created.
The private integration can contain a widget that will work in the amoCRM interface but only within the borders of the account where the integration was created.
Public integration (published in the amoCRM marketplace).
If you are developing an integration that can be useful for all amoCRM users, we’ll be glad to publish it on our marketplace. Integrations of this type have to pass our moderation. This means that we are testing and auditing the JS code, if it is present, to ensure the security and quality of experience for our users. As the development of such integrations is a more complex process, we provide separate technical accounts for Integrators of public integrations where they can communicate with a separate support and testing team. In the technical account Integrator will work with an advanced interface for custom integrations with features like integration versioning and multi languages.
Such integration can contain a widget file that will be working in the amoCRM interface. Integration of this type can be installed from an external website using the Button for the website mechanism.
This integration type implies that you are using only amoCRM API without a JS widget. Such integration will be suitable for the data exchange solutions services that do not want to be published in the amoCRM Integrations marketplace, or pass our moderation but want to provide a useful solution for our common users. In that case, there’s an option to add the button for authorization and access granting on your service’s website. Meta-data required for the integration installation will be specified in the button settings.
Integration of this type can be only created using the Button for site mechanism. You can add the meta-data to that button. After a user provides access, the private integration with this meta-data will be created in his account.
You’ll receive a webhook with the data required for the authorization.External integration allows using amoCRM API without uploading the widget. Every user account will have a new integration with its own set of secret keys.
Every integration except for the external type can have a JS-widget archive which will be working in amoCRM interface.
With the help of this widget you will be able to:
- display your layout in the allowed system locations: lead or contact cards, lists, pipelines, dashboard, etc., as well as add an interface for interaction with the integration for users;
- affect the display and behavior of the standard amoCRM interfaces;
- exchange data with external systems by sending requests, or with amoCRM via the REST API;
- receive data from the page context and JS objects initiated by amoCRM.
You can read more about the widget development here.
Widget use cases:
- I want to display additional information about the contact (in the contact card) from my internal accounting system;
- I want my company’s employees to send a request to the accounting department to form a payment directly from the lead card;
- I am the developer of a third-party service (telephony, email-server) and I want to give amoCRM clients the opportunity to use my service by publishing a public widget and making the integration more transparent and easy.
In addition to ability to receive, add and update data in amoCRM using REST API, and utilizing the Integrations system described above, we provide an additional set of Instruments for creating a convenient and easy to use Integration with amoCRM.
SalesBot – a tool for creation of custom scenarios for automatic operations with a user via messengers.
amoCRM has several default messenger integrations (Facebook Messenger, Telegram, Viber, Skype, and several others). We provide a custom SalesBot language and visual editor to create automatic scenarios for communication with a user, as well as an option for Integrator to embed his integration into the Bot workflow.
Digital Pipeline – a powerful automation tool that has its own constructor. The constructor allows to set up automatic system reactions on the occurring events (lead status change, website visit, etc.). amoCRM can react with a large amount of customizable actions (set up a task, add a contact to the ads campaign, send an email, etc.).
Besides that, Integrator can create his own event handler and add it to the list of available automatic actions.
Lists – are custom data tables that can be created via API or amoCRM interface. A user can access these tables via the standard interfaces and integration can manage data via API, restricting the users’ rights to edit this data via standard interface if needed.
Examples of such lists are product lists, invoice lists, order lists and etc.
These are tables which fields are managed by integration but which can be linked to the main amoCRM entities (leads, customers).
Webhooks – the instrument that allows to subscribe to certain events (a contact change, new task, etc.) in amoCRM manually or via API and launch your script on these events, receiving an entry context of the occurred event at the same time. With the help of this instrument you are able to track necessary data changes not depending on the periodic synchronization but going off of the event model.
VoIP integration tools – is a set of JS-methods and libraries (call record players, push-notifications, etc.) as well as specific API and use examples which will be useful for Integrators developing integration with telephony service.
Chats API – every Integrator who has a task to connect a new message source – new messenger – can use our API. As an example, you can develop your own integration with WhatsApp with our API and distribute it on your conditions because in that case, you will be responsible for transferring messages and controlling the WhatsApp API. For the end-user this will look like sending messages directly to the messenger and receing them in amoCRM. SalesBot will also be compatible with incoming messages from your source.
Notification Center – amoCRM has its own notification system similar to push-notifications on mobile devices. Message delivery is implemented via web-sockets, a user can see the history of notifications and set up the message delivery settings. Notification center API is open as well.