Используйте API для получения данных amoCRM из других программ
API проекта реализовано на базе стандартного протокола HTTPS с использованием POST запросов и ответов в формате XML. Для работы с API можно использовать CURL (см. http://ru.wikipedia.org/wiki/CURL) или же другие библиотеки, которые могут производить запрос к внешнему сервису. Все запросы необходимо производить не на общий домен http://www.amocrm.ru, а на точный адрес вашего аккаунта, например, https://company.amocrm.ru или https://qsoft.amocrm.ru. Также обратите внимание, что запросы производятся в формате HTTPS
Авторизация
В программе предусмотрено два вида авторизации:
- Через логин-пароль пользователя
- Через специальный ключ (Token), который можно получить на странице редактирования профиля пользователя. Однако обратите внимание, что после смены пароля, ключ сбрасывается и устанавливается новый.
Для авторизации сделайте следующий запрос:
- Страница запроса: /private/api/auth.php
- POST-параметры для авторизации через логин-пароль: USER_LOGIN=Логин&USER_PASSWORD=пароль
- POST-параметры для авторизации по ключу: USER_LOGIN=Логин&USER_HASH=ключ
В результате вернется XML-ответ в следующей структуре:
<root>
<auth>true <!-- (или false в случае ошибки) --></auth>
</root>
Контакты
Список
Для получения списка контактов сделайте запрос к странице /private/api/contacts.php. В ответ будет выдан XML с информацией о контактах, связанных пользователях, информации о тегах.
Кол-во выданных элементов будет соответствовать тому кол-во, которое пользователь указал при отображении списка контактов в обычном интерфейсе (этот параметр сохраняется в настройках пользователей). Если необходимо указать другое значение, то можно использовать параметр ELEMENT_CONT (например, &ELEMENT_CONT=30). Информация по страницам содержится в XML-ответе в тегах <onpage>, <totalpages> и <currpage>
Поиск контакта
Чтобы найти контакт по какому либо ключевому слову (e-mail, ФИО, название компании и пр.), нужно сделать запрос к странице /private/api/contact_search.php и в параметре SEARCH передать искомое слово. В ответ будет выдан XML аналогичный тому, что выводится в списке контактов.
Детальная страница контакта
Чтобы получить полную информацию по определенному контакту, сделайте запрос к странице /private/api/contact_detail.php и передайте параметр ID с уникальным номером контакта (передается, например, при построении списка контактов). В ответ будет возвращен XML с полной информацией по контакту, по связанным примечаниям, по задачам, по пользователям.
Добавление контакта
Для добавления контакта вызовите страницу /private/api/contact_add.php и передайте ей следующие POST-параметры:
ACTION=ADD_PERSON
сontact = Array(
'person_name' => 'Фамилия Имя',
'person_position' => 'Должность',
'person_company_name' => 'Компания',
'person_company_id' => 'ID компании, если известно',
'contact_data' => Array (
'phone_numbers' => Array (
0 => Array ('number' => '+7 495 123-45-67'),
1 => Array ('location' => 'Work'),
2 => Array ('number' => '+7 499 891-01-11'),
3 => Array ('location' => 'Mobile')
),
'email_addresses' => Array (
0 => Array('address' => 'maks@qsoft.ru'),
1 => Array('location' => 'Work')
),
'web_addresses' => Array(
0 => Array('url' => 'http://www.amocrm.ru')
),
'addresses' => Array(
'street' => 'Адрес'
),
'instant_messengers' => Array(
0 => Array('address' => 'imaddr'),
1 => Array('protocol' => 'Skype')
)
)
)
Редактирование контакта
Для редактирования контакта вызовите /private/api/contact_add.php и передайте следующие параметры:
- ACTION=EDIT
- ID=ID контакта
- contact=Структура данных аналогична той, что используется при добавлении контакта (нужно передавать все данные контакта, не зависимо от того, изменилось поле или нет)
Удаление контакта
Для удаление контакта вызовите страницу /private/api/contact_delete.php со следующими параметрами:
- ACTION=DELETE
- ID=ID контакта
Сделки
Список
Для получения списка сделок сделайте запрос к странице /private/api/deals.php. В ответ будет выдан XML с информацией о сделке, связанных со сделкой контактов, пользователей, информации о тегах.
Кол-во выданных элементов будет соответствовать тому кол-во, которое пользователь указал при отображении списка сделок в обычном интерфейсе (этот параметр сохраняется в настройках пользователей). Если необходимо указать другое значение, то можно использовать параметр ELEMENT_CONT (например, &ELEMENT_CONT=30). Информация по страницам содержится в XML-ответе в тегах <onpage>, <totalpages> и <currpage>
Поиск сделок
Чтобы найти сделку по какому либо ключевому слову (e-mail, ФИО, название компании и пр.), нужно сделать запрос к странице /private/api/deal_search.php и в параметре SEARCH передать искомое слово. В ответ будет выдан XML аналогичный тому, что выводится в списке сделок.
Детальная страница сделки
Чтобы получить полную информацию по определенной сделке, сделайте запрос к странице /private/api/deal_detail.php и передайте параметр ID с уникальным номером сделки (передается, например, при построении списка сделок). В ответ будет возвращен XML с полной информацией по сделке, контакту, по связанным примечаниям, по задачам, по пользователям.
Добавление сделки
Для добавления сделки вызовите страницу /private/api/deal_add.php и передайте ей следующие POST-параметры:
ACTION=ADD
deal = Array(
'name' => 'Название сделки',
'status_id' => 'ID статуса сделки',
'price' => 'Цена (число)',
'main_user_id' => 'ID ответственного пользователя',
'tags' => 'тег, тег2, тег3',
'linked_contact' => 'ID связанного контакта'
)
Редактирование сделки
Для редактирования сделки вызовите /private/api/deal_add.php и передайте следующие параметры:
- ACTION=EDIT
- ID= ID сделки
- deal = Структура данных аналогична той, что используется при добавлении сделки (нужно передавать все данные сделки, не зависимо от того, изменилось поле или нет)
Удаление сделки
Для удаление сделки вызовите страницу /private/api/deal_delete.php со следующими параметрами:
- ACTION= DELETE
- ID= ID сделки
Примечания
Список примечаний
Для получения списка примечаний, привязанных к какому либо Объекту (сделка или контакт), необходимо просто запросить детальную страницу Объекта, все связанные примечания автоматически будут переданы в XML-ответе.
Добавление примечания
Для добавления примечания необходимо обратится к странице /private/api/note_add.php и передать след. параметры:
- ACTION = ADD_NOTE
- BODY = Текст примечания
- ID = ID связанного Объекта
- ELEMENT_TYPE = Тип связанного объекта, равен 1 для контакта, 2 для сделки
Редактирование примечания
Для редактирования примечания произведите запрос к странице /private/api/note_add.php со след. параметрами:
- ACTION = EDIT_NOTE
- ID = ID редактируемого примечания
- BODY= Текст примечания
Удаление примечания
Запрос необходимо произвести к странице /private/api/note_add.php. Передаваемые параметры:
- ACTION = NOTE_DELETE
- ID = ID удаляемого примечания
Задачи
Список задач
Для получения списка задач, привязанных к какому либо Объекту (сделка или контакт), необходимо просто запросить детальную страницу Объекта, все связанные задачи автоматически будут переданы в XML-ответе.
Добавление задачи
Для добавления задачи необходимо обратится к странице /private/api/task_add.php и передать след. параметры:
- ACTION = ADD_TASK
- BODY => Текст задачи
- END_DATE => Дата выполнения задачи в формате DD.MM.YYYY HH:MI:SS (например, 14.01.2011 02:00:00)
- MAIN_USER => ID пользователя, которому ставится задача
- ID => ID связанного объекта (необязательное поле)
- ELEMENT_TYPE => 1 для контакта, 2 для сделки (обязательное поле, если определен объект задачи)
- TASK_TYPE => Тип задачи, может быть CALL / LETTER / MEETING
Редактирование задачи
Для редактирования задачи произведите запрос к странице /private/api/task_add.php со след. параметрами:
- ACTION = EDIT_TASK
- ID = ID редактируемой задачи
- BODY => Текст задачи
- END_DATE => Дата выполнения задачи в формате DD.MM.YYYY HH:MI:SS (например, 14.01.2011 02:00:00)
- MAIN_USER => ID пользователя, которому ставится задача
- TASK_OBJECT => ID связанного объекта (необязательное поле)
- ELEMENT_TYPE => 1 для контакта, 2 для сделки (обязательное поле, если определен объект задачи)
- TASK_TYPE => Тип задачи, может быть CALL / LETTER / MEETING
Удаление задачи
Запрос необходимо произвести к странице /private/api/task_add.php. Передаваемые параметры:
- ACTION = TASK_DELETE
- ID = ID удаляемой задачи
Выполнение задачи
Чтобы отметить, что задача была выполнена, необходимо выполнить запрос к странице /private/api/task_add.php и передать следующие параметры:
- ACTION = COMPLATE_TASK
- ID = ID удаляемой задачи