owners-registry-import: a skill for loading an owners registry into Bitrix24

ai-agent-bitrix24-portfolio

A skill for Cursor and Claude Code that loads houses, premises and owners from CSV into Bitrix24 smart processes with a "Check only" mode

  • 0 ★ on the repository
  • Last commit
  • MIT
Skill

Broad access

Why this level

  • A webhook with the `crm` right can write contacts, companies and smart process items, and writing touches owners personal data
  • A typo in a field code goes unnoticed until the `--check-fields` comparison is done
All reasons and checks
Russian stack

pavelpruss/ai-agent-bitrix24-portfolio

Install

Services

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/ai-agent-bitrix24-portfolio

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • A webhook with the `crm` right can write contacts, companies and smart process items, and writing touches owners personal data
  • A typo in a field code goes unnoticed until the `--check-fields` comparison is done

This is third-party code. Review the repository files before installing.

What it does

The `owners-registry-import` skill guides an agent through loading a registry into Bitrix24: three CSV files (houses, premises, owners) become items of the "Houses" and "Premises" smart processes, and owners become contacts for individuals and companies for legal entities, linked to premises. The column-to-CRM-field mapping lives in `mapping.yaml`, and the agent does not guess field codes. The Python code works in three modes. `python -m owners_import --data <folder>` checks the files and writes a report without touching the portal. With `--check-fields` it reads portal fields, with `--apply` it writes data through the webhook and then rereads the items and compares them with the plan. Running the same file again creates nothing anew. The data in the repository is synthetic.

Who it is for. IT project leads and Bitrix24 administrators in property management who load houses and owners from registries.

Good fit when

  • A registry for a new house arrived and it must be loaded into CRM by a field mapping table
  • A file needs checking before loading: share sums, premises without owners, several legal entities per premise
  • After loading, data landed in the wrong fields and you need a comparison with the portal
  • An agent in Cursor needs sample `AGENTS.md` and `CLAUDE.md` files with rules for working with CRM

Not a fit when

  • You need a universal loader of any data into Bitrix24: the skill is built for houses, premises and owners
  • The source is Excel or an accounting system export: bring it to three CSV files in a separate step first
  • A portal without the "Houses" and "Premises" smart processes: take codes and types from `crm.type.list`

Example request

Check the data/sample folder before loading into Bitrix24 in "Check only" mode and show a "column, field, example" table

Limitations

The project is published as the author portfolio and shows an approach and has no finished product: the production company code is not included and the data is synthetic. It needs Python and a test portal webhook with the `crm` right, kept in `.env` as `B24_WEBHOOK_URL`. The field table must be checked against a real portal, otherwise Bitrix24 silently ignores a mistyped code. The author says they are not a professional programmer. The last commit in October 2026, no stars.

How to disable. Delete the `skills/owners-registry-import` folder from the project and revoke the portal webhook. Loaded smart process items stay in CRM and are deleted manually.

FAQ

Can I write nothing at first?

Yes. A run without flags only checks the files and writes a report into `reports/`, with no portal requests.

What does `--apply` do?

It writes houses, premises and owners into the portal if the files have no errors. Then the items are reread and compared with the plan.

What about errors and warnings?

Errors block a row, warnings do not block writing but the agent must show them to a human. `--allow-partial` writes only clean rows on the human explicit decision.

Will a repeated run create duplicates?

No. Items are matched by `xmlId` and `originId`, and a repeated run of the same file reports that there is nothing to create.

Why are `AGENTS.md` and `CLAUDE.md` in the repository useful?

They are a sample of permanent agent context: a role, rules for working with CRM and a definition of done. The seven-file project scheme is described there too.

Discussion

No questions or reviews yet.

Russian stack

A Bitrix24 REST skill split into capability packs with a method allowlist, risk confirmations and an audit log

SkillBroad access26Repository stars
Russian stack

Four skills for Bitrix24 apps: install and OAuth, a batching REST client, events and iframe placements, CRM business processes and calendar

SkillExtended access

Bitrix24 REST API skill

bitrix24-rest-api

Russian stack

A Claude Code skill with real-portal-verified Bitrix24 REST API gotchas: auth modes, errors hidden under HTTP 200, retries and rate limits

SkillMinimal access
Russian stack

A skill for administering, diagnosing and developing boxed Bitrix24 and Bitrix Framework, built from official documentation

SkillExtended access1Repository stars

Bitrix24 overdue task watcher

task-overdue-watcher

Russian stack

A skill and script that check overdue Bitrix24 tasks twice a week, ping assignees and send a summary to the owner

SkillExtended access

README in short

The repository introduces the author and the work with Cursor agents, describes the seven-file scheme and an agent error with CRM fields, and contains the skill with loading code, tests and synthetic data.

README badge

Original SKILL.md

---
name: owners-registry-import
description: Загрузка реестра домов, помещений и собственников (CSV) в Bitrix24 — смарт-процессы «Дома» и «Помещения», «Контакты» для физлиц и «Компании» для юрлиц, с привязкой к помещениям. Использовать, когда нужно завести новый дом в CRM из реестра, проверить реестр перед загрузкой или разобраться, почему данные легли не в те поля.
---

# Скилл: загрузка реестра собственников в Bitrix24

## Когда применять
- Пришел реестр по новому дому: дом, помещения, собственники.
- Нужно проверить файл до загрузки («Только проверить»).
- После загрузки что-то не сходится и нужна сверка с CRM.

## Входные данные
Папка с тремя CSV (UTF-8, первая строка — заголовки). Формат колонок — в [`mapping.yaml`](mapping.yaml):
- `houses.csv` — `house_id, address, cadastral_number, floors, year_built`
- `premises.csv` — `premise_id, house_id, number, premise_type, area`
- `owners.csv` — одна строка = «собственник ↔ помещение»: `owner_id, premise_id, owner_type (person|company), share, last_name, first_name, middle_name, company_name, inn, phone, email`

Если исходник в другом виде (Excel, выгрузка учетной системы), сначала приведи его к этим колонкам
отдельным шагом и покажи человеку 5 первых строк результата.

## Шаги
1. **Сверь таблицу полей.** Открой `mapping.yaml`. Если портал новый, получи реальные `entityTypeId`
   (`crm.type.list`) и коды полей (`crm.item.fields`) и обнови таблицу. Не угадывай коды полей.
2. **Только проверить:**
   ```bash
   python -m owners_import --data <папка>
   ```
   Ни одного запроса к порталу. Результат — `reports/report-*.md` и `.json`.
3. **Разбери отчет с человеком.** Ошибки (❌) блокируют строку. Предупреждения (⚠️) запись не блокируют,
   но их нужно показать человеку: суммы долей, помещения без собственников, несколько юрлиц на помещение.
   Попроси человека проверить таблицу «колонка → поле → пример значения».
4. **Сверка полей с порталом (только чтение):**
   ```bash
   python -m owners_import --data <папка> --check-fields
   ```
5. **Запись** — только после подтверждения человека:
   ```bash
   python -m owners_import --data <папка> --apply
   ```
   Если в файле есть ошибки, запись отменяется. `--allow-partial` записывает только чистые строки,
   используй его только по явному решению человека.
6. **Смоук-проверка** запускается автоматически после записи: элементы перечитываются из портала
   и сверяются с планом (поля, привязка помещения к дому, собственника к помещению).
   Повторный запуск того же файла должен показать «Создано: ничего».

Report a problem