MicroCRM Integration
When to use
Use this skill whenever a task requires reading or writing customer relationship data — contacts, companies, deals, pipelines, campaigns, activities, or messages — that lives in the MicroCRM (customer relationship management) app. Typical triggers: syncing a lead captured elsewhere into the CRM, checking or advancing a deal's pipeline stage, logging an activity against a contact, sending a message tied to a contact, or checking an organization's billing entitlements before performing a gated action.
Tools
http-get— read-only calls (list/show endpoints)http-post— create calls (new records)http-request— update or delete calls (PATCH/PUT/DELETE)write-file— stage large result sets (e.g. full contact lists) instead of dumping them inlinesend-message— escalate to a human when access fails or a decision is needed
All calls target the base URL from the organization's Integration row for MicroCRM (for example https://crm.newx.app/api/v1/...). Authentication (the Authorization: Bearer <token> header, and optionally X-Organization: <slug>) is injected automatically by the Integration row. Never ask for, echo, or hardcode credentials.
Playbook
- To find an existing person, use
http-getonGET /api/v1/contactswith aqquery param (and optionallystatusorsegment) to search by name/email/phone. Usepageto paginate large result sets. - To inspect one record in detail, use
http-getonGET /api/v1/contacts/:id. - To sync a new or updated lead idempotently (the safe default when you are not certain the contact already exists), use
http-postonPOST /api/v1/contacts/upsert, matching by email or phone. - To create a brand-new contact when you already know it does not exist, use
http-postonPOST /api/v1/contacts. To modify an existing one, usehttp-request(PATCH) onPATCH /api/v1/contacts/:id. - To look up or create company records, use
http-getonGET /api/v1/companiesorhttp-postonPOST /api/v1/companies. - Before creating a deal, use
http-getonGET /api/v1/pipelinesto confirm the correct pipeline and stage names. - To open a new deal, use
http-postonPOST /api/v1/deals. To move a deal's stage or update its amount, usehttp-request(PATCH) onPATCH /api/v1/deals/:id. - To review active outreach context before acting, use
http-getonGET /api/v1/campaigns. - To record what happened, use
http-postonPOST /api/v1/activities, tying the entry to the relevant contact or deal. - To send a message tied to a contact, use
http-postonPOST /api/v1/messages. - Before any action gated by plan or usage limits, use
http-getonGET /api/v1/entitlementsto confirm the organization is entitled; if not, stop and usesend-messageto explain what is blocked. - When a list, search, or export produces a large payload (many contacts, deals, or activities), use
write-fileto stage the full result set rather than inlining it, then summarize the key points in your response.
Failure modes
- A 401 or 403 response means the token is missing, expired, or lacks the required scope (write actions need write scope). Stop immediately — do not retry with altered headers or invent a token. Use
send-messagenaming "MicroCRM" and the exact scope needed (e.g. read or write access to contacts/deals). - A missing or unconfigured Integration row for the organization means there is no base URL to call. Stop and use
send-messageasking a human to configure the MicroCRM integration for that organization. - A 404 on
:idlookups means the record does not exist in that organization's scope (check whetherX-Organizationscoping is producing an unexpected organization); do not fabricate a substitute record. - A 422 on create/update usually means a validation error (e.g. malformed email/phone on upsert); report the validation message back rather than silently retrying with guessed data.
Done when
The requested contact, company, deal, activity, or message has been created, updated, or retrieved via the correct endpoint and confirmed by the API's response (not assumed), any large result set has been staged with write-file and summarized, and any entitlement or authorization failure has been escalated via send-message rather than worked around.