Распечатать

Оглавление

1. Загрузка и обновление данных

2. Получение данных из Базис Недвижимость

3. Пример сценария обмена данными


Для чего нужна интеграция

Если у вас есть внешняя система и часть отделов продолжают работать в ней, а часть переходят на работу в системе Базис Недвижимость (БН), может возникнуть потребность в синхронизации данных между системами, в базовом сценарии это три основных пункта:

  • Данные по помещениям (площади, цена)
  • Данные по сделкам (статус, сумма, выбранное помещение)
  • Данные по участникам сделок (ФИО, телефон, паспортные данные)


Загрузка и обновление данных

Данные по помещениям

Есть три варианта по загрузке помещений (рекомендуем вариант 2):

1) Импорт из Excel (малая степень автоматизации, требует минимальное кол-во ресурсов от вашего отдела разработки) - вы можете создать в своей системе выгрузку помещений в файл Excel в требуемом формате, а затем загрузить этот файл в кабинете Базис Недвижимость.

Плюсы: 

+ Легко начать работать

+ Минимум разработки на вашей стороне

Минусы:

- Файл нужно формировать каждый раз заново и вручную загружать в БН

- Есть риск неверно сопоставить колонки при загрузке и "испортить данные" (придется загружать еще раз, чтобы исправить)

2) Импорт из фида Рекомендуем! (высокая степень автоматизации, средняя сложность разработки) - Создайте в своей системе автоматический Фид (ссылка на xml-файл, который формируется динамически из вашей базы данных) и укажите ссылку на него в кабинете БН, помещения будут загружены, а при повторной загрузке того же фида, данные будут обновляться, таким образом можно держать данные актуальными в обеих системах.

Описание фида для загрузки в Базис Недвижимость здесь: https://iflat.io/blog/17-basis-xml-feed

Плюсы: 

+ Данные приходят всегда в одном формате, что исключает человеческий фактор и появление ошибок

+ Минимум расхождений в данных. Один и тот же фид можно загружать каждый день, в нем всегда актуальные данные, а значит каждый день актуальные данные будут попадать и в Базис Недвижимость

+ Если у вас уже есть выгрузка квартир на Яндекс.Недвижимость, достаточно будет добавить к ней несколько полей, чтобы этот фид подошел и для Базис Недвижимость

Минусы:

- Потребуются ресурсы на вашей стороне для разработки такого фида

3) Создание и обновление объектов через методы API (самая высокая степень автоматизации, высокая сложность разработки) - используя наше Rest API, вы можете полностью создавать и контролировать всю структуру данных в Базис Недвижимость, добавлять дома/этажи/помещения, менять их свойства, удалять, любые действия.

Описание документации по API здесь: https://iflat.io/api/documentation

Плюсы: 

+ Полный контроль над данными 

Минусы:

- Потребуются большие ресурсы на вашей стороне для разработки подобной интеграции (вникнуть в структуру данных, написать функции по работе с каждым объектом)


Данные по сделкам и покупателям

Как и в случае с помещениями, есть три варианта, с теми же плюсами и минусами:

  1. Импорт из Excel (низкая автоматизация, минимум затрат ресурсов)
  2. Импорт из Фида (высокая автоматизация, среднее количество ресурсов)
  3. Прямая работа через API (высокая автоматизация, большое количество ресурсов)

Рекомендуем загружать данные по сделкам с помощью вариантов 2 или 3, поскольку при импорте из Excel придется сначала загрузить сделки и ФИО участников, а затем, отдельным файлом, загрузить паспортные данные по каждому участнику, что усложняет процесс.

Как начать работу и загрузить данные подробно описано в статье Быстрый старт https://iflat.io/blog/12-get-started

Если вы используете amoCRM, интеграция по сделками и покупателям уже готова, подробнее здесь: https://iflat.io/blog/10-amocrm-widget


Получение данных из Базис Недвижимость 

У вас может возникнуть потребность получать обратно, в свою учетную систему, какие-либо данные из Базис Недвижимость, такими данными могут быть, например:

  • Информация по появлению новой приемки, дата приемки
  • Статус проведенной приемки (успешно/с замечаниями)
  • Появление новой технической заявки на устранение замечаний
  • Появление наряда на работу
  • Отметка техзаявки или наряда как Выполнено
  • Изменение информации по помещению (статус квартиры)
  • Изменение данных покупателя (ФИО или паспортные данные)

Есть три варианта решения такой задачи:

1) По расписанию/запросу с вашей стороны - вы можете в любой момент забрать, например, список новых приемок или все технические заявки с помощью метода API, и дальше на своей стороне использовать полученные данные

2) Автоматический сигнал (Webhook) со стороны БН при наступлении события создания или изменения объекта - как только будет создана новая приемка или техзаявка, на ваш адрес сразу будет отправлена информация о них, это происходит в режиме реального времени. Подробнее о вебхуках здесь: https://iflat.io/blog/18-webhooks

3) Без автоматизации - выгрузка в Excel - всегда можно выгрузить, например, помещения с актуальными статусами или технические заявки в Excel, и использовать эти данные в своих целях.

Рекомендуем! В целях получения общих данных использовать вариант 1, по расписанию, например, раз в сутки забирать данные обо всех приемках и техзаявках за прошедший день. А при необходимости каких-либо действий в реальном времени, например, если вам нужно ставить менеджеру задачу в CRM при завершении приемки, использовать вебхук на изменение приемки, чтобы сразу "поймать" этот сигнал и создать задачу.


Пример сценария обмена данными

Опишем пример, когда есть внешняя учетная система, например, CRM, в которой работают менеджеры по продажам и хранится информация по квартирам, и стоит задача проводить в Базис Недвижимость (БН) передачу помещений и вести работу по устранению замечаний.

1. Настраиваем получение актуальных данных по помещениям из CRM 

В CRM создается экспорт всех помещений в фид в формате Базис.Недвижимость XML (подробнее здесь https://iflat.io/blog/17-basis-xml-feed)

В БН указывается ссылка на фид и загружаются все дома и помещения (структура данных создается автоматически). В дальнейшем из этого же фида может проводиться повторная загрузка, чтобы актуализировать данные, например, если после обмеров БТИ поменялись площади.

На этом шаге мы загружем все объекты и обеспечиваем возможность обновлять данные в дальнейшем, чтобы они были актуальными в обеих системах.

2. Загружаем сделки и покупателей

Если есть задача загрузить паспортные данные, либо если хотим сразу автоматизировать процесс - создаем на стороне CRM функцию, которая будет выполнять API-запросы к БН (документация по API здесь https://iflat.io/api/documentation), по порядку:

  1. Создаем покупателя методом "POST /users", передаем его ФИО и номер телефона. В ответ получаем ресурс User, в котором есть ID созданного пользователя в базе данных.
  2. Если нужно сохранить паспортные данные, то выполняем еще дополнительно метод "PUT /users/{userId}/personalData", куда передаем все данные покупателя.
  3. Создаем сделку методом "POST /deals", передаем ID помещения из БН (room_id) и номер/дату договора (при необходимости). В ответ получаем ресурс Deal, в котором есть ID созданной сделки в базе данных. Важно! Передавать надо внутренний room_id из Базис Недвижимость, чтобы узнать все room_id и их соответствие вашим ID из CRM, можно выполнить команду /externalObjects/Room, которая вернет список всех загруженных квартир и их внутренние room_id вместе с вашими external_id. Предполагается, что эта карта соответствий после первого получения будет храниться и на стороне CRM, чтобы каждый раз не нужно было получать заранее /externalObjects/Room (сократить запросы, ускорить процесс).
  4. Когда у нас есть ID покупателя и ID сделки, выполняем "POST /deals/{dealId}/clients", передаем туда ID покупателя, таким образом прикрепляем покупателя к сделке.

3. (При необходимости) Если есть задача получать дату приемки в CRM

Либо делаем получение списка всех приемок по расписанию с помощью API, например, за день: "GET /inspections?createdDateFrom=10.06.2020&createdDateTo=10.06.2020" и кладем данные по ним, куда необходимо.

Либо создаем вебхук, чтобы сразу получать данные о появлении новой приемки и сразу сохранять дату в CRM. Для этого на стороне CRM нужно создать обработчик, который будет принимать данные из БН, а затем указать ссылку на него в настройках БН. В меню Настройки -> Webhooks добавляем вебхук с типом Создание приемки и указываем ссылку на обработчик CRM.

Также есть вебхук на изменение приемки, можно использовать для получения статуса приемки в реальном времени.

4. (При необходимости) Если есть задача получать новые технические заявки в CRM

Аналогично получению приемок.

Либо делаем получение списка всех техзаявок по расписанию с помощью API, например, за день: "GET /claims?createdDateFrom=10.06.2020&createdDateTo=10.06.2020" и кладем данные по ним, куда необходимо.

Либо создаем вебхук, чтобы сразу получать данные о появлении новой техзаявки.

5. (При необходимости) Если есть задача получать свободные временные промежутки для записи на приемку

Чтобы получить все дни, в которые возможна запись на приемку нужно выполнить запрос (для этого метода нужно знать ID дома):

"GET /houses/{houseId}/inspectionsPeriods?groupBy=date" 

Чтобы получить все временные отрезки за выбранный день и информацию по ним (занято/свободно), выполяем метод:

"GET /houses/{houseId}/inspectionsDays/{date}/times", где date - это дата в формате 10.06.2021


PS. Авторизация в API для выполнения запросов

Чтобы иметь возможность выполнять запросы к API, необходимо сначала получить авторизационный токен (access_token)

Выполняем запрос "POST /oauth/token", передаем логин/пароль и данные аккаунта, в ответ будет отправлен access (живет 1 сутки) и refresh (живет 30 дней) токены.

Дальше во все запросы добавляем заголовок  'Authorization: Bearer ВашAccessТокен'

Все авторизационные методы описаны в документации к API, раздел Авторизация