Expand your capabilities with API
We try to provide maximum opportunities for amoCRM integrations with other services and systems, so that you, our customers and partners, can expand the capabilities of amoCRM for yourself, others and our users.
Writing your own widgets and integrations is not as difficult as it might seem at first glance. In order to further facilitate the life of the developer, in addition to instructions, we give examples of the use of methods, their description.
Also you can use the console to work with our API.
What is an Integration?
Any interaction with a third-party service we call Integration. A team or a sole developer who create an integration we call Integrator.
Integration is a Data Base 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.) necessary for user 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 hightlight 3 types of integrations:
This is the simplest type of an 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 an integration takes up the following steps:
- Authorize as an account administrator
- Create an 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 will gladly publish it to 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 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 inteface for custom integrations with features like integration versioning and multilanguages.
Such an 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 on site mechanism.
This integration type implies that you are using only amoCRM API without a JS-widget.
Such an 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 autorization 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 on site mechanism.
You can add the meta-data into 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 inteface.
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 inteface for interaction with the integration for users;
affect the display and behavior of the standard amoCRM intefaces;
exchange data with external systems by sending requests, or with amoCRM via the REST API;
recieve data from the page context and JS objects initiated by amoCRM.
You can read more about the widget development here.
Examples of using widgets:
- 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 autorization tool that has its own constructor. The constructor allows to set up automatic system reaction on the occuring 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 avalable automatic actions.
Lists – in their essence are custom data tables that can be created via API or amoCRM interface. A user can access these tables via the standard intefaces and an integration can manage data via API, restricting the users’ rights to edit this data via the standard inteface if needed.
An example for such lists can be product lists, invoice lists, order lists.
These are tables which fields are managed by an 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 occured event in 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 an 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 looks like sending messages directly to the messenger and receing them in amoCRM. SalesBot will also be compatible with incoming messages from your source.
Notification Centre – amoCRM has its own notification system similar to push-notifications on mobile devices. Message delivery is realized via web-sockets, a user is able to see the history of notifications and set up the message delivery settings. Notification centre API is open as well.