Объявления
Привязка external ID
Связывание существующих объявлений с записями в CRM
Если объявления были созданы через веб-интерфейс Rentix, привяжите к ним external ID, чтобы управлять через API.
Когда это нужно
- Объявления созданы вручную через rentix.md, и теперь нужно синхронизировать с CRM
- Миграция с другой системы интеграции
- Восстановление связей после сбоя
Привяжите external ID
Связывает объявление Rentix с записью в вашей CRM.
const response = await fetch('https://crm.rentix.md/api/v1/listings/42/link', {
method: 'POST',
headers: {
'Authorization': 'ApiKey YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ externalId: 'apt-001' })
});
const result = await response.json();
console.log(`Объявление ${result.id} привязано к ${result.externalId}`);
curl -X POST https://crm.rentix.md/api/v1/listings/42/link \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "externalId": "apt-001" }'
$ch = curl_init('https://crm.rentix.md/api/v1/listings/42/link');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['externalId' => 'apt-001']));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: ApiKey YOUR_API_KEY',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
Ответ
{
"id": 42,
"externalId": "apt-001",
"linked": true
}
После привязки можно использовать external ID для обновления:
curl -X PUT https://crm.rentix.md/api/v1/listings \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "externalId": "apt-001", "announcementValue": 550 }'
Отвяжите external ID
Удаляет связь между объявлением и external ID.
const response = await fetch('https://crm.rentix.md/api/v1/listings/42/link', {
method: 'DELETE',
headers: { 'Authorization': 'ApiKey YOUR_API_KEY' }
});
curl -X DELETE https://crm.rentix.md/api/v1/listings/42/link \
-H "Authorization: ApiKey YOUR_API_KEY"
$ch = curl_init('https://crm.rentix.md/api/v1/listings/42/link');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: ApiKey YOUR_API_KEY']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
Ответ
{
"id": 42,
"externalId": "apt-001",
"unlinked": true
}
Сценарий: первоначальная привязка
При интеграции существующего агентства нужно связать объявления Rentix с записями в CRM.
Node.js
// 1. Получить все объявления из Rentix
const response = await fetch('https://crm.rentix.md/api/v1/listings?limit=100', {
headers: { 'Authorization': 'ApiKey YOUR_API_KEY' }
});
const { items: rentixListings } = await response.json();
// 2. Для каждого объявления найти соответствие в CRM
for (const listing of rentixListings) {
// Пропустить уже привязанные
if (listing.externalId) continue;
// Найти по адресу, цене или другим признакам
const crmRecord = await findMatchInCrm(listing);
if (crmRecord) {
// 3. Привязать external ID
await fetch(`https://crm.rentix.md/api/v1/listings/${listing.id}/link`, {
method: 'POST',
headers: {
'Authorization': 'ApiKey YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ externalId: crmRecord.id })
});
console.log(`Привязано: Rentix #${listing.id} → CRM ${crmRecord.id}`);
}
}
Частые ошибки
| Ошибка | Причина | Решение |
|---|---|---|
External ID already linked | Этот external ID уже используется другим объявлением | Используйте уникальный ID или сначала отвяжите от другого объявления |
Listing already has external ID | У объявления уже есть external ID | Сначала отвяжите текущий ID |
Listing not found | Объявление не существует или принадлежит другому агентству | Проверьте ID |
Listing has no external ID | При отвязке: у объявления нет external ID | Ничего не нужно делать |