About bitrix24-crm
A reference skill for server-side Bitrix24 CRM development on on-premise portals. It organizes guidance on CRM factories, operations, permissions, automation, and related APIs, with rules for safe data changes.
Key features
- 01Factory-based CRM item operations
- 02Guidance on permissions and user context
- 03Smart processes, funnels, and stages
- 04Events, automation, and timeline activities
- 05Legacy API and REST mapping
Use cases
- 01Implementing CRM item creation and updates
- 02Checking access before listing or changing records
- 03Handling CRM events and automated actions
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ bxmaximum/ bitrix-framework-skills --skill bitrix24-crmAfter installing, type/bitrix24-crmin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
rules/events-automation.mdfactory-items.mdfields-uf.mdlegacy-rest.mdoperations.mdpermissions.mdsmart-processes.mdtimeline-activities.mdDetails
From the project READMEBitrix24 CRM (server side)
Scope: Bitrix24 on-premise · Verified: crm 26.800.0, main 26.800.0
PHP running inside the portal: /local/ modules, handlers, agents. Calling CRM over REST: bitrix24-rest-api.
| Task | Read |
|---|---|
| Container, Factory, reading items, field names, phones/e-mails | rules/factory-items.md |
| Add/update/delete, Context, checks, custom actions | rules/operations.md |
| Smart processes, funnels, stages, smart invoices | rules/smart-processes.md |
| Rights checks, permission-filtered lists | rules/permissions.md |
| Reacting to changes, factory override, robots, triggers | rules/events-automation.md |
| Timeline comments, to-dos, activities | rules/timeline-activities.md |
| Fields collection, user fields | rules/fields-uf.md |
CCrmDeal/CCrmLead/… replacements, D7 ↔ REST map | rules/legacy-rest.md |
Invariants
Loader::includeModule('crm')first; get services fromContainer::getInstance().- Write only through Factory operations:
getAddOperation()/getUpdateOperation()/getDeleteOperation()→launch(). NeverDealTable::add(),$factory->getDataClass()::update(),Item::save()/Item::delete(): they skip rights, required fields, events, timeline, search index and robots. - Use
Item::FIELD_NAME_*names; the factory maps them to entity columns (leadSTAGE_ID→STATUS_ID). - Dynamic
entityTypeId, funnel and stage IDs differ per portal: resolve by code or semantics at runtime, never hardcode. - Agents, CLI and queues have no user: pass a
Contextwith a user ID, or disable the access check on purpose. - Check
isSuccess()of everylaunch()and pass its errors up.
Comments
Markdown supported