Введение

Возможности

API OKOCRM поддерживает чтение и запись контактов, компаний, сделок и других элементов системы. Это дает вам возможность, как просматривать, так и использовать дынные, которые храняться в OKOCRM в других своих сервисах.

Вы можете использовать API для импорта внешних данных в свою учетную запись OKOCRM.

Мы также работаем над интеграцией других сервисов в платформу OKOCRM. Эти сервисы будут доступны для всех пользователей OKOCRM для интеграции в платформу. Если вы планируете создать свою интеграцию, которая сможет использоваться на нашей платформе, свяжитесь с нами по адресу [email protected]

Как это работает?

API OKOCRM основано на RESTfull API. URL-адрес okocrm.com API v2: https://api.okocrm.com/v2/.

Авторизация

Заголовок запроса

Ко всем запросам к API необходимо добавить 2 header:

Accept: application/json
Authorization: Bearer токен

Токен можно получить в разделе личного профиля, в okocrm, в графе "Токен для API".
Обратите внимание, что все запросы к api будут иметь те же права, что имеет пользователь этого токена.

Пользователи

Список пользователей

GET https://api.okocrm.com/v2/users/
Метод позволяет получить весь список пользователей
Параметр
Тип
Описание
Запрос
page
integer
Страница с результатами
Ответ
id
integer
Идентификатор пользователя
name
string
ФИО
login
string
E-mail
role_id
integer
Идентификатор группы доступа
date_born
date
День рождения
phone
string
Телефон
date_job_start
date
Дата трудоустройства
date_job_end
date
Дата увольнения
department_id
integer
Идентификатор отдела
created_at
timestamp
Timestamp создания
updated_at
timestamp
Timestamp редактирования

Контакты

Список контактов

GET https://api.okocrm.com/v2/contacts/
Получить весь список контактов
Параметр
Тип
Описание
Запрос
page
integer
Номер страницы
Ответ
id
integer
Идентификатор
name
string
ФИО
user_id
integer
Идентификатор ответственного
date_born
date
Дата рождения
source_id
integer
Источник
phones
array
Массив телефонов
emails
array
Массив e-mail адресов
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term
created_at
timestamp
Timestamp создания
updated_at
timestamp
Timestamp последнего изменения

В списке возвращаемых полей, динамически выводятся дополнительные поля, которые являются уникальными у каждого клиента, в зависимости от настроек

Получить контакт

GET https://api.okocrm.com/v2/contacts/{contact_id}/
Получить информацию о контакте, по его идентификатору
Параметр
Тип
Описание
Ответ
id
integer
Идентификатор контакта
name
string
ФИО
user_id
integer
Идентификатор ответственного
date_born
date
Дата рождения
source_id
integer
Источник
phones
array
Массив телефонов
emails
array
Массив e-mail адресов
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term
created_at
timestamp
Timestamp создания контакта
updated_at
timestamp
Timestamp последнего изменения контакта

В списке возвращаемых полей, динамически выводятся дополнительные поля, которые являются уникальными у каждого клиента, в зависимости от настроек

Добавить контакт

POST https://api.okocrm.com/v2/contacts/
Добавить новый контакт
Параметр
Тип
Описание
Запрос
name *
string
ФИО
user_id
integer
Идентификатор ответственного
date_born
date
Дата рождения
source_id
integer
Источник
phones
array
Массив телефонов
phone
string
Номер телефона
emails
array
Массив e-mail адресов
email
string
Email
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term
client_ids
array
Массив идентификаторов ClientID (Например, Яндекс Метрики)
Ответ
id
string
Идентификатор контакта

В передаваемый список полей добавляются уникальные, для каждого клиента, поля которые настраиваются в системе

                                                                            curl --location 'https://api.okocrm.com/v2/contacts' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{токен}}' \
--form 'name="Delbert Cummerata"' \
--form 'user_id="1"' \
--form 'phones[][phone]="464-313-2066"' \
--form 'emails[][email]="[email protected]"' \
--form 'tags[]="feed"'
                                                                        
                                                                            package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io"
)

func main() {

  url := "https://api.okocrm.com/v2/contacts"
  method := "POST"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)
  _ = writer.WriteField("name", "Carlton Corwin")
  _ = writer.WriteField("user_id", "1")
  _ = writer.WriteField("phones[][phone]", "204-857-4763")
  _ = writer.WriteField("emails[][email]", "[email protected]")
  _ = writer.WriteField("tags[]", "HDD")
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Accept", "application/json")
  req.Header.Add("Authorization", "Bearer {{токен}}")

  req.Header.Set("Content-Type", writer.FormDataContentType())
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
                                                                        
                                                                            var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'api.okocrm.com',
  'path': '/v2/contacts',
  'headers': {
    'Accept': 'application/json',
    'Authorization': 'Bearer {{токен}}'
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nShelia Sawayn\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"user_id\"\r\n\r\n1\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"phones[][phone]\"\r\n\r\n201-325-1196\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"emails[][email]\"\r\n\r\[email protected]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"tags[]\"\r\n\r\nrepurpose\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--";

req.setHeader('content-type', 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW');

req.write(postData);

req.end();
                                                                        
                                                                            <?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.okocrm.com/v2/contacts',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('name' => 'Domingo Huel','user_id' => '1','phones[][phone]' => '599-318-0994','emails[][email]' => '[email protected]','tags[]' => 'Cambridgeshire'),
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
    'Authorization: Bearer {{токен}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

                                                                        
                                                                            import requests

url = "https://api.okocrm.com/v2/contacts"

payload = {'name': 'Lana Raynor',
'user_id': '1',
'phones[][phone]': '568-371-6852',
'emails[][email]': '[email protected]',
'tags[]': 'partnerships'}
files=[

]
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {{токен}}'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

                                                                        

Изменить контакт

PUT https://api.okocrm.com/v2/contacts/{contact_id}/
Изменить, любую, информацию о контакте, по его идентификатору
Параметр
Тип
Описание
Запрос
name
string
ФИО
user_id
integer
Идентификатор ответственного
date_born
date
Дата рождения
source_id
integer
Источник
phones
array
Массив телефонов
phone
string
Номер телефона
emails
array
Массив e-mail адресов
email
string
Email
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term
Ответ
id
integer
Идентификатор контакта

В передаваемый список полей добавляются уникальные, для каждого клиента, поля которые настраиваются в системе

Удалить контакт

DELETE https://api.okocrm.com/v2/contacts/{contact_id}/
Удаление контакта, по его идентификатору.

Привязка сущностей

POST https://api.okocrm.com/v2/contacts/{contact_id}/link/
Добавить к сущности связь с компаниями или сделками
Параметр
Тип
Описание
Запрос
companies
array
Многомерный массив с вложенными идентификаторами компаний
companies.*.id
integer
Идентификатор компании
leads
array
Многомерный массив с вложенными идентификаторами сделок
leads.*.id
integer
Идентификатор сделки

Компании

Список компаний

GET https://api.okocrm.com/v2/companies/
Получить весь список компаний
Параметр
Тип
Описание
Запрос
page
integer
Номер страницы
Ответ
id
integer
Идентификатор
name
string
Наименование
user_id
integer
Идентификатор ответственного
source_id
integer
Источник
phones
array
Массив телефонов
emails
array
Массив e-mail адресов
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term
created_at
timestamp
Timestamp создания
updated_at
timestamp
Timestamp последнего изменения

В списке возвращаемых полей, динамически выводятся дополнительные поля, которые являются уникальными у каждого клиента, в зависимости от настроек

Получить компанию

GET https://api.okocrm.com/v2/companies/{company_id}/
Получить информацию о компании, по её идентификатору
Параметр
Тип
Описание
Ответ
id
integer
Идентификатор
name
string
ФИО
user_id
integer
Идентификатор ответственного
source_id
integer
Источник
phones
array
Массив телефонов
emails
array
Массив e-mail адресов
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term
created_at
timestamp
Timestamp создания
updated_at
timestamp
Timestamp последнего изменения

В списке возвращаемых полей, динамически выводятся дополнительные поля, которые являются уникальными у каждого клиента, в зависимости от настроек

Добавить компанию

POST https://api.okocrm.com/v2/companies/
Добавить новую компанию
Параметр
Тип
Описание
Запрос
name *
string
ФИО
user_id
integer
Идентификатор ответственного
source_id
integer
Источник
phones
array
Массив телефонов
phone
string
Номер телефона
emails
array
Массив e-mail адресов
email
string
Email
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term
Ответ
id
string
Идентификатор

В передаваемый список полей добавляются уникальные, для каждого клиента, поля которые настраиваются в системе

                                                                            curl --location 'https://api.okocrm.com/v2/companies' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{токен}}' \
--form 'name="Boyd Hodkiewicz"' \
--form 'user_id="1"' \
--form 'phones[][phone]="546-722-7423"' \
--form 'emails[][email]="[email protected]"' \
--form 'tags[]="transmit"'
                                                                        
                                                                            package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io"
)

func main() {

  url := "https://api.okocrm.com/v2/companies"
  method := "POST"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)
  _ = writer.WriteField("name", "Brian Stoltenberg")
  _ = writer.WriteField("user_id", "1")
  _ = writer.WriteField("phones[][phone]", "765-323-5658")
  _ = writer.WriteField("emails[][email]", "[email protected]")
  _ = writer.WriteField("tags[]", "deposit")
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Accept", "application/json")
  req.Header.Add("Authorization", "Bearer {{токен}}")

  req.Header.Set("Content-Type", writer.FormDataContentType())
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
                                                                        
                                                                            var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'api.okocrm.com',
  'path': '/v2/companies',
  'headers': {
    'Accept': 'application/json',
    'Authorization': 'Bearer {{токен}}'
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nSuzanne DuBuque\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"user_id\"\r\n\r\n1\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"phones[][phone]\"\r\n\r\n730-602-9619\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"emails[][email]\"\r\n\r\[email protected]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"tags[]\"\r\n\r\nCustomizable\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--";

req.setHeader('content-type', 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW');

req.write(postData);

req.end();
                                                                        
                                                                            <?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.okocrm.com/v2/companies',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('name' => 'Roland Schneider','user_id' => '1','phones[][phone]' => '962-994-0760','emails[][email]' => '[email protected]','tags[]' => 'deposit'),
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
    'Authorization: Bearer {{токен}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

                                                                        
                                                                            import requests

url = "https://api.okocrm.com/v2/companies"

payload = {'name': 'Winston Anderson Jr.',
'user_id': '1',
'phones[][phone]': '856-699-9699',
'emails[][email]': '[email protected]',
'tags[]': 'Clothing'}
files=[

]
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {{токен}}'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

                                                                        

Изменить компанию

PUT https://api.okocrm.com/v2/companies/{company_id}/
Изменить, любую, информацию о компании, по её идентификатору
Параметр
Тип
Описание
Запрос
name
string
ФИО
user_id
integer
Идентификатор ответственного
source_id
integer
Источник
phones
array
Массив телефонов
phone
string
Номер телефона
emails
array
Массив e-mail адресов
email
string
Email
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term
Ответ
id
integer
Идентификатор

В передаваемый список полей добавляются уникальные, для каждого клиента, поля которые настраиваются в системе

Удалить компанию

DELETE https://api.okocrm.com/v2/companies/{company_id}/
Удаление компании, по её идентификатору.

Привязка сущностей

POST https://api.okocrm.com/v2/companies/{company_id}/link/
Добавить к сущности связь с контактами или сделками
Параметр
Тип
Описание
Запрос
contacts
array
Многомерный массив с вложенными идентификаторами контактов
contacts.*.id
integer
Идентификатор контакта
leads
array
Многомерный массив с вложенными идентификаторами сделок
leads.*.id
integer
Идентификатор сделки

Сделки

Список сделок

GET https://api.okocrm.com/v2/leads/
Получить весь список сделок, по всем воронкам и этапам воронок
Параметр
Тип
Описание
Запрос
page
integer
Номер страницы
Ответ
id
integer
Идентификатор сделки
name
string
Название сделки
pipeline_id
integer
Идентификатор воронки
stages_id
integer
Идентификатор этапа воронки
loss_reason_id
integer
Идентификатор причины закрытия сделки
closed_at
timestamp
Timestamp закрытия сделки
contacts
array
Массив идентификаторов контактов, которые привязаны к сделке
companies
array
Массив идентификаторов компаний, которые привязаны к сделке
budget
integer
Сумма сделки
tags
array
Массив тегов, которые привязаны к сделке
margin
integer
Маржа
user_id
integer
Идентификатор ответственного
client_type
integer
Тип клиента
city_id
integer
Идентификатор города
source_id
integer
Источник
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term
created_at
timestamp
Timestamp создания сделки
updated_at
timestamp
Timestamp последнего изменения сделки

В списке возвращаемых полей, динамически выводятся дополнительные поля, которые являются уникальными у каждого клиента, в зависимости от настроек

Получить сделку

GET https://api.okocrm.com/v2/leads/{lead_id}/
Получить всю информаци о сделке, по её идентификатору
Параметр
Тип
Описание
Ответ
id
integer
Идентификатор сделки
name
string
Название сделки
pipeline_id
integer
Идентификатор воронки
stages_id
integer
Идентификатор этапа воронки
loss_reason_id
integer
Идентификатор причины закрытия сделки
closed_at
timestamp
Timestamp закрытия сделки
contacts
array
Массив идентификаторов контактов, которые привязаны к сделке
companies
array
Массив идентификаторов компаний, которые привязаны к сделке
budget
integer
Сумма сделки
tags
array
Массив тегов, которые привязаны к сделке
margin
integer
Маржа
user_id
integer
Идентификатор ответственного
client_type
integer
Тип клиента
city_id
integer
Идентификатор города
source_id
integer
Источник
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term
created_at
timestamp
Timestamp создания сделки
updated_at
timestamp
Timestamp последнего изменения сделки

В списке возвращаемых полей, динамически выводятся дополнительные поля, которые являются уникальными у каждого клиента, в зависимости от настроек

Создать сделку

POST https://api.okocrm.com/v2/leads/
Добавление новой сделки
Параметр
Тип
Описание
Запрос
pipeline_id *
integer
Идентификатор воронки
stages_id *
integer
Идентификатор этапа воронки
name *
string
Название сделки
loss_reason_id
integer
Идентификатор причины закрытия сделки
tags
array
Массив тегов, которые привязаны к сделке
budget
integer
Сумма сделки
margin
integer
Маржа
user_id
integer
Идентификатор ответственного
city_id
integer
Идентификатор города
source
integer
Источник
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term
contact
array
Привязываемый контакт
name
string
ФИО контакта
phone
string
Телефон контакта
Ответ
lead_id
integer
Идентификатор сделки

В передаваемый список полей добавляются уникальные, для каждого клиента, поля которые настраиваются в системе

                                                                            curl --location 'https://api.okocrm.com/v2/leads' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{токен}}' \
--form 'name="Est aut tenetur est quas ratione sed cum assumenda magni."' \
--form 'pipeline_id="2"' \
--form 'stages_id="4"' \
--form 'contact[name]="Mamie Kuhic MD"' \
--form 'contact[phone]="401-567-9280"' \
--form 'responsible="queue_24"' \
--form 'ip="122.193.218.217"' \
--form 'note[text]="Odit et et omnis eos natus hic reiciendis voluptatem.
Nobis sed iste est commodi.
Dolorem impedit quam error fuga in quas.
Ad rerum laboriosam magnam voluptate quo rerum voluptate."' \
--form 'tags[]="Accounts"'
                                                                        
                                                                            package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io"
)

func main() {

  url := "https://api.okocrm.com/v2/leads"
  method := "POST"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)
  _ = writer.WriteField("name", "Possimus enim consequuntur et id delectus.")
  _ = writer.WriteField("pipeline_id", "2")
  _ = writer.WriteField("stages_id", "4")
  _ = writer.WriteField("contact[name]", "Sherman Kozey")
  _ = writer.WriteField("contact[phone]", "539-688-0071")
  _ = writer.WriteField("responsible", "queue_24")
  _ = writer.WriteField("ip", "132.104.170.251")
  _ = writer.WriteField("note[text]", "Totam officia saepe.\nOfficia quia quia aut possimus commodi tempore porro officia.\nItaque aliquid eos ratione.\nAb consectetur ratione.\nEius aut voluptas perferendis.")
  _ = writer.WriteField("tags[]", "connect")
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Accept", "application/json")
  req.Header.Add("Authorization", "Bearer {{токен}}")

  req.Header.Set("Content-Type", writer.FormDataContentType())
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
                                                                        
                                                                            var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'api.okocrm.com',
  'path': '/v2/leads',
  'headers': {
    'Accept': 'application/json',
    'Authorization': 'Bearer {{токен}}'
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nVelit molestias et mollitia magni vel.\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"pipeline_id\"\r\n\r\n2\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"stages_id\"\r\n\r\n4\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"contact[name]\"\r\n\r\nBrent Williamson\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"contact[phone]\"\r\n\r\n630-983-5879\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"responsible\"\r\n\r\nqueue_24\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"ip\"\r\n\r\n88.155.126.255\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"note[text]\"\r\n\r\nVoluptatem magnam voluptatem minima repellat earum voluptas.
Veritatis assumenda eos reprehenderit enim maxime ratione.
Rerum modi earum beatae tempora.
Dolor laudantium nesciunt deleniti ut qui qui.\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"tags[]\"\r\n\r\n24\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--";

req.setHeader('content-type', 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW');

req.write(postData);

req.end();
                                                                        
                                                                            <?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.okocrm.com/v2/leads',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('name' => 'Possimus aut nihil accusamus recusandae aliquid recusandae.','pipeline_id' => '2','stages_id' => '4','contact[name]' => 'Francis Gulgowski','contact[phone]' => '812-503-8537','responsible' => 'queue_24','ip' => '124.155.223.111','note[text]' => 'Similique non corporis sed sed mollitia.
Corrupti veritatis voluptas perspiciatis maiores vitae est.','tags[]' => 'explicit'),
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
    'Authorization: Bearer {{токен}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

                                                                        
                                                                            import requests

url = "https://api-dev.okocrm.com/v2/leads"

payload = {'name': 'Eum aut amet voluptas tenetur dolore unde.',
'pipeline_id': '2',
'stages_id': '4',
'contact[name]': 'Delia Leffler',
'contact[phone]': '472-249-4705',
'responsible': 'queue_24',
'ip': '179.205.211.141',
'note[text]': 'Repellendus illum alias perferendis sed aut ipsa sed modi doloremque.
Quidem laudantium repellendus minima praesentium mollitia voluptas.
A minima ducimus qui quia.',
'tags[]': 'Focused'}
files=[

]
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {{токен}}'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

                                                                        

Изменить сделку

PUT https://api.okocrm.com/v2/leads/{lead_id}/
Обновление информации о сделке
Параметр
Тип
Описание
Запрос
pipeline_id
integer
Идентификатор воронки
stages_id
integer
Идентификатор этапа воронки
name
string
Название сделки
loss_reason_id
integer
Идентификатор причины закрытия сделки
tags
array
Массив тегов, которые привязаны к сделке
budget
integer
Сумма сделки
margin
integer
Маржа
user_id
integer
Идентификатор ответственного
city_id
integer
Идентификатор города
source_id
integer
Источник
utm_source
string
UTM Source
utm_medium
string
UTM Medium
utm_campaign
string
UTM Campaign
utm_content
string
UTM Content
utm_term
string
UTM Term

В передаваемый список полей добавляются уникальные, для каждого клиента, поля которые настраиваются в системе

Удалить сделку

DELETE https://api.okocrm.com/v2/leads/{lead_id}/
Удаление сделки, по её идентификатору.

Привязка сущностей

POST https://api.okocrm.com/v2/leads/{lead_id}/link/
Добавить к сущности связь с контактами или компаниями
Параметр
Тип
Описание
Запрос
contacts
array
Многомерный массив с вложенными идентификаторами контактов
contacts.*.id
integer
Идентификатор контакта
companies
array
Многомерный массив с вложенными идентификаторами компаний
companies.*.id
integer
Идентификатор компании

Воронки

Список воронок

GET https://api.okocrm.com/v2/pipelines/
Получить список воронок
Параметр
Тип
Описание
Ответ
id
integer
Идентификатор воронки
name
string
Название воронки

Этапы воронок

Список этапов

GET https://api.okocrm.com/v2/pipelines/stages/{pipeline_id}
Список этапов воронки
Параметр
Тип
Описание
Ответ
id
integer
Идентификатор этапа воронки
pipeline_id
integer
Идентификатор воронки
name
string
Название этапа воронки
color
string
Цвет этапа воронки

Задачи

Список задач

GET https://api.okocrm.com/v2/tasks/
Получить список задач
Параметр
Тип
Описание
Запрос
lead_id
integer
Идентификатор задачи
contact_id
integer
Идентификатор контакта
company_id
integer
Идентификатор компании
Ответ
id
integer
Идентификатор задачи
type_id
integer
Идентификатор типа задачи
contact_id
integer
Идентификатор контакта, к которому привязана задача
lead_id
integer
Идентификатор сделки, к которой привязана задача
company_id
integer
Идентификатор компании, к которой привязана задача
text
text
Текст задачи
created_at
timestamp
Timestamp создания задачи
date_start
timestamp
Timestamp планируемого начала выполнения задачи
date_finish
timestamp
Timestamp планируемого окончания выполнения задачи
closed_at
timestamp
Timestamp фактического закрытия задачи
done
integer
Признак закрытой задачи
owner_id
integer
Идентификатор пользователя поставившего задачу
executer_id
integer
Идентификатор исполнителя задачи
process_time
integer
Затраченное время на выполнение задачи, в минутах

Создать задачу

POST https://api.okocrm.com/v2/tasks/
Создать задачу
Параметр
Тип
Описание
Запрос
type_id
integer
Идентификатор типа задачи
contact_id
integer
Идентификатор контакта, к которому привязана задача
lead_id
integer
Идентификатор сделки, к которой привязана задача
company_id
integer
Идентификатор компании, к которой привязана задача
text
text
Текст задачи
date_start
date
Срок задачи в формате Y-m-d H:i
date_finish
date
Срок задачи в формате Y-m-d H:i
executer_id *
integer
Идентификатор исполнителя задачи
reminder
integer
Количество секунд, за сколько напомнить о задаче. Максимальное 15552000 (180 дней)
Ответ
id
integer
Идентификатор задачи
                                                                            curl --location 'https://api.okocrm.com/v2/tasks/' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{токен}}' \
--form 'lead_id="{lead_id}"' \
--form 'contact_id="{contact_id}"' \
--form 'company_id="{company_id}"' \
--form 'type_id="2"' \
--form 'text="Consequatur et repellendus voluptatem. Quas assumenda autem maiores. Harum ea expedita totam fugit similique maxime officiis dolorum. Esse error sint quam voluptatem dolores nisi consectetur nisi aut. Explicabo distinctio reiciendis."' \
--form 'executor_id="76"' \
--form 'date_start="2022-03-29 10:10"' \
--form 'date_finish="2022-03-29 12:10"'
                                                                        
                                                                            package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io"
)

func main() {

  url := "https://api.okocrm.com/v2/tasks/"
  method := "POST"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)
  _ = writer.WriteField("lead_id", "{lead_id}")
  _ = writer.WriteField("contact_id", "{contact_id}")
  _ = writer.WriteField("company_id", "{company_id}")
  _ = writer.WriteField("type_id", "2")
  _ = writer.WriteField("text", "Quaerat blanditiis earum maxime consequatur voluptatem et ut exercitationem. Animi magnam aut itaque autem et tempore fugiat. Corporis nisi distinctio.")
  _ = writer.WriteField("executor_id", "76")
  _ = writer.WriteField("date_start", "2022-03-29 10:10")
  _ = writer.WriteField("date_finish", "2022-03-29 12:10")
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Accept", "application/json")
  req.Header.Add("Authorization", "Bearer {{токен}}")

  req.Header.Set("Content-Type", writer.FormDataContentType())
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
                                                                        
                                                                            var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'api.okocrm.com',
  'path': '/v2/tasks/',
  'headers': {
    'Accept': 'application/json',
    'Authorization': 'Bearer {{токен}}'
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"lead_id\"\r\n\r\n{lead_id}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"contact_id\"\r\n\r\n{contact_id}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"company_id\"\r\n\r\n{company_id}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"type_id\"\r\n\r\n2\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"text\"\r\n\r\nAccusantium non sit ipsa totam cupiditate non et nostrum. Nesciunt excepturi possimus necessitatibus itaque nostrum fuga aut ad fugit. Eum ex vero reprehenderit incidunt quia. Error dolor deleniti eos. Totam consectetur quae animi debitis. Et et natus debitis numquam.\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"executor_id\"\r\n\r\n76\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"date_start\"\r\n\r\n2022-03-29 10:10\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"date_finish\"\r\n\r\n2022-03-29 12:10\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--";

req.setHeader('content-type', 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW');

req.write(postData);

req.end();
                                                                        
                                                                            <?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.okocrm.com/v2/tasks/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('lead_id' => '{lead_id}','contact_id' => '{contact_id}','company_id' => '{company_id}','type_id' => '2','text' => 'Mollitia sunt illo ab quae qui. Earum enim aut. Fuga molestiae tenetur aut eaque voluptas cum accusantium rem. Aut officia harum molestiae. Magnam rerum omnis consequatur tenetur laudantium mollitia. Tenetur similique ex veritatis ipsa est.','executor_id' => '76','date_start' => '2022-03-29 10:10','date_finish' => '2022-03-29 12:10'),
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
    'Authorization: Bearer {{токен}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

                                                                        
                                                                            import requests

url = "https://api.okocrm.com/v2/tasks/"

payload = {'lead_id': '{lead_id}',
'contact_id': '{contact_id}',
'company_id': '{company_id}',
'type_id': '2',
'text': 'Nulla quasi vitae. Magnam laborum dolore aut id rerum tempore recusandae. Explicabo harum sed. Non tempore quidem exercitationem voluptate dignissimos atque nisi.',
'executor_id': '76',
'date_start': '2022-03-29 10:10',
'date_finish': '2022-03-29 12:10'}
files=[

]
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {{токен}}'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

                                                                        

Изменить задачу

PUT https://api.okocrm.com/v2/tasks/{task_id}/
Изменить задачу, по её идентификатору
Параметр
Тип
Описание
Запрос
type_id
integer
Идентификатор типа задачи
contact_id
integer
Идентификатор контакта, к которому привязана задача
lead_id
integer
Идентификатор сделки, к которой привязана задача
company_id
integer
Идентификатор компании, к которой привязана задача
text
text
Текст задачи
date_start
date
Срок задачи в формате Y-m-d H:i
date_finish
date
Срок задачи в формате Y-m-d H:i
executer_id *
integer
Идентификатор исполнителя задачи
reminder
integer
Количество секунд, за сколько напомнить о задаче. Максимальное 15552000 (180 дней)
Ответ
id
integer
Идентификатор задачи

Удалить задачу

DELETE https://api.okocrm.com/v2/tasks/{task_id}/
Удалить задачу, по её идентификатору

Задача выполнена + комментарий

POST https://api.okocrm.com/v2/tasks/done/{id}
Отметка выполнения задачи и добавление комментария по ней
Параметр
Тип
Описание
Запрос
text
string
Комментарий

Типы задачи

Список типов

GET https://api.okocrm.com/v2/task/types/
Получить список типов
Параметр
Тип
Описание
Ответ
id
integer
Идентификатор
title
string
Название типа
icon
string
Иконка
color
string
Цвет иконки

Примечания

Добавить

POST https://api.okocrm.com/v2/notes/note
Добавить текстовое примечание к сущности
Параметр
Тип
Описание
Запрос
lead_id
integer
Идентификатор сделки
contact_id
integer
Идентификатор контакта
company_id
integer
Идентификатор компании
text *
text
Текст примечания
Ответ
id
integer
Идентификатор примечания

Нужно передать 1 из 3 идентификаторов сущностей

                                                                            curl --location 'https://api.okocrm.com/v2/notes/note' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{токен}}' \
--form 'lead_id="1725"' \
--form 'text="Nisi id sint consequuntur nulla autem. Aut illum possimus. Est nisi et et. Earum et omnis amet quod voluptates veritatis ipsam. Neque voluptatibus rem et. Nihil reprehenderit fuga."'
                                                                        
                                                                            package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io"
)

func main() {

  url := "https://api.okocrm.com/v2/notes/note"
  method := "POST"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)
  _ = writer.WriteField("lead_id", "1725")
  _ = writer.WriteField("text", "Et eveniet atque pariatur minima blanditiis facilis. Aut aspernatur aliquam. Libero architecto aut recusandae.")
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Accept", "application/json")
  req.Header.Add("Authorization", "Bearer {{токен}}")

  req.Header.Set("Content-Type", writer.FormDataContentType())
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
                                                                        
                                                                            var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'api.okocrm.com',
  'path': '/v2/notes/note',
  'headers': {
    'Accept': 'application/json',
    'Authorization': 'Bearer {{токен}}'
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"lead_id\"\r\n\r\n1725\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"text\"\r\n\r\nNihil quos sit repellat eos quo. Quas sed voluptatem quidem enim aut libero voluptatem. Inventore saepe rem aliquam qui quos. Molestiae velit exercitationem unde et veritatis tenetur.\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--";

req.setHeader('content-type', 'multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW');

req.write(postData);

req.end();
                                                                        
                                                                            <?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.okocrm.com/v2/notes/note',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('lead_id' => '1725','text' => 'Optio velit quis velit reiciendis minima. Adipisci ea id sit iure incidunt. Hic explicabo ut ratione non iste sit voluptas. Pariatur quia culpa ad animi officia repudiandae. Aut sunt explicabo doloribus ex necessitatibus nisi amet. Saepe id inventore facilis id ut qui ea velit suscipit.'),
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
    'Authorization: Bearer {{токен}}'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

                                                                        
                                                                            import requests

url = "https://api.okocrm.com/v2/notes/note"

payload = {'lead_id': '1725',
'text': 'Aliquid minima quas debitis. Ipsum quos perspiciatis nihil laboriosam. Aliquid nihil molestias quisquam pariatur voluptatem maiores dolor. Et error quidem. Quidem quod pariatur.'}
files=[

]
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {{токен}}'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)

                                                                        
Наверх
Мы используем cookie для вашего удобства. Используя сайт, вы соглашаетесь с этим. Подробнее - в политике конфиденциальности.
Я согласен