agentsclimarketplace

Iblai api crm

Skill iblai/api/skills/iblai-api-crm

Agent skills + a chat MCP server to operate the ibl.ai platform via its REST API. Install: npx skills add iblai/api

Install
npx -y skills add iblai/api --skill iblai-api-crm

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Manage an ibl.ai organization's CRM via the platform API — people, organizations, pipelines and stages, lead sources, deals (with stage-move/won/lost actions), activities, and tags. Org-wide sales/relationship management. Use for lead capture, pipelines, and deal flow.

SKILL.md

11.3 KB, as published. Nobody here has run it

iblai-api-crm

Manage an organization's CRM from the API: people and organizations, pipelines and their stages, lead sources, deals (with stage-move / won / lost actions), activities, and tags — all the sales and relationship-management records for one organization. Use for lead capture, pipelines, and deal flow.

Auth & conventions

  • Base URL: https://api.iblai.app/dm — CRM is a Data Manager (DM) endpoint, so the /dm prefix is required; the /api/crm/... paths below are appended to it (e.g. https://api.iblai.app/dm/api/crm/persons/).
  • Header: Authorization: Api-Token $IBLAI_API_KEY on every request. (The CRM developer docs phrase this as Authorization: Token <key> — it is the same Platform API Token.)
  • Scope: Platform-scoped. Every record belongs to the organization resolved from the token, so there is no {org} in the path.
  • Ids: integers for every resource except Person and Organization, whose ids are UUID strings.
  • Not connected yet? Run /iblai-api-login first to populate IBLAI_ORG, IBLAI_USERNAME, and IBLAI_API_KEY.

Resources

ResourcePathId
Person/api/crm/persons/UUID
Organization/api/crm/organizations/UUID
Pipeline/api/crm/pipelines/int
Stage/api/crm/pipelines/{pipeline_id}/stages/int (nested under a pipeline)
Lead Source/api/crm/lead-sources/int
Deal/api/crm/deals/int
Activity/api/crm/activities/int
Tag/api/crm/tags/int

Each resource supports standard REST: GET (list), POST (create), GET {id} (read), PATCH {id} (update), DELETE {id} (delete). DELETE is destructive — confirm with the user first.

Useful filters

  • owner={user_id} — "my pipeline" / "my accounts".
  • owner__isnull=true — unowned records.
  • ?is_default=true on pipelines — the seeded pipeline; its response embeds its stages inline.

Pagination

List GETs are page-numbered. Navigate with ?page={n} and override the page size with ?page_size={n} (default 50). The list envelope is:

{ "count": 137, "next_page": 3, "previous_page": 1, "results": [ /* … */ ] }

next_page / previous_page are page numbers (or null at the ends), not URLs — a detail different from stock DRF pagination.

Reads

Person

  • GET /api/crm/persons/ — list people.
  • GET /api/crm/persons/{id}/ — read a person.

Organization

  • GET /api/crm/organizations/ — list organizations.
  • GET /api/crm/organizations/{id}/ — read an organization.

Pipeline

  • GET /api/crm/pipelines/ — list pipelines.
  • GET /api/crm/pipelines/{id}/ — read a pipeline.

Stage

  • GET /api/crm/pipelines/{pipeline_id}/stages/ — list a pipeline's stages.
  • GET /api/crm/pipelines/{pipeline_id}/stages/{id}/ — read a stage.

Lead Source

  • GET /api/crm/lead-sources/ — list lead sources.
  • GET /api/crm/lead-sources/{id}/ — read a lead source.

Deal

  • GET /api/crm/deals/ — list deals.
  • GET /api/crm/deals/{id}/ — read a deal.

Activity

  • GET /api/crm/activities/ — list activities.
  • GET /api/crm/activities/{id}/ — read an activity.

Tag

  • GET /api/crm/tags/ — list tags.
  • GET /api/crm/tags/{id}/ — read a tag.

Writes

Person

  • POST /api/crm/persons/ — create a person.
  • PATCH /api/crm/persons/{id}/ — update a person.
  • DELETE /api/crm/persons/{id}/ — delete a person. Confirm with the user first.

Person actions:

  • POST /api/crm/persons/merge/ — merge duplicates into one: body { "primary_id": UUID, "duplicate_ids": [UUID, …] }; reparents the duplicates' deals / activities / tags onto the primary. Destructive — confirm first.
  • POST /api/crm/persons/{id}/invite/ — email an invitation to the person's primary_email. Body (all optional): is_admin (bool), is_staff (bool), enrollment_config (object, forwarded to auto-enroll the invitee), redirect_to (url). Success returns the invitation_id; 409 if an active invitation already exists for that email (the response carries the existing invitation_id, so you can track / resend it), 422 if the person is already linked to a platform user. Sends outward — confirm with the user first.
  • POST /api/crm/persons/{id}/link-user/ — link the CRM person to an existing platform user: body { "user_id": int } (required; the user must already be an active member of your org, else 403). Sets platform_user.

Organization

  • POST /api/crm/organizations/ — create an organization.
  • PATCH /api/crm/organizations/{id}/ — update an organization.
  • DELETE /api/crm/organizations/{id}/ — delete an organization. Confirm with the user first.

Pipeline

  • POST /api/crm/pipelines/ — create a pipeline.
  • PATCH /api/crm/pipelines/{id}/ — update a pipeline.
  • DELETE /api/crm/pipelines/{id}/ — delete a pipeline. Confirm with the user first.

Stage

  • POST /api/crm/pipelines/{pipeline_id}/stages/ — create a stage.
  • PATCH /api/crm/pipelines/{pipeline_id}/stages/{id}/ — update a stage.
  • DELETE /api/crm/pipelines/{pipeline_id}/stages/{id}/ — delete a stage. Confirm with the user first.

Lead Source

  • POST /api/crm/lead-sources/ — create a lead source.
  • PATCH /api/crm/lead-sources/{id}/ — update a lead source.
  • DELETE /api/crm/lead-sources/{id}/ — delete a lead source. Confirm with the user first.

Deal

  • POST /api/crm/deals/ — create a deal.
  • PATCH /api/crm/deals/{id}/ — update a deal.
  • DELETE /api/crm/deals/{id}/ — delete a deal. Confirm with the user first.

Deal actions (the canonical way to transition deals):

  • PATCH /api/crm/deals/{id}/ — reposition stage within a pipeline (allowed).
  • POST /api/crm/deals/{id}/move-stage/ — transition stage; body accepts stage_code (preferred) or stage_id.
  • POST /api/crm/deals/{id}/won/ — close the deal as won. Body optional: stage_code to target a specific is_won stage (defaults to the pipeline's first is_won stage by sort_order).
  • POST /api/crm/deals/{id}/lost/ — close the deal as lost. Body requires a non-empty lost_reason (≤255; 400 if missing); optional stage_code (defaults to the first is_lost stage).

Activity

  • POST /api/crm/activities/ — create an activity.
  • PATCH /api/crm/activities/{id}/ — update an activity.
  • DELETE /api/crm/activities/{id}/ — delete an activity. Confirm with the user first.
  • POST /api/crm/activities/{id}/done/ — mark the activity done (stamps done_at; see is_done/done_at in the schema).

Tag

  • POST /api/crm/tags/ — create a tag.
  • PATCH /api/crm/tags/{id}/ — update a tag.
  • DELETE /api/crm/tags/{id}/ — delete a tag. Cascades — removes every assignment on every person / organization / deal. Confirm with the user first.

Attach / detach on a host ({host} = persons | organizations | deals; both need Ibl.CRM/Tags/write, a separate RBAC bucket from host-write — see references/workflows.md § Tagging):

  • POST /api/crm/{host}/{id}/tags/ — attach an existing tag to a host record: body { "tag_id": int } (≥ 1). Returns 201 with { assignment_id, tag }; 409 if already attached (idempotent — carries the existing assignment_id, so treat it as success); 404 if the tag isn't in your org.
  • DELETE /api/crm/{host}/{id}/tags/{tag_id}/ — detach a tag (removes the assignment row, not the tag). 204 on success; 404 if it wasn't attached. Not idempotent — a repeat DELETE returns 404; treat that as a no-op success.

Example

Create a person:

curl -X POST \
  "https://api.iblai.app/dm/api/crm/persons/" \
  -H "Authorization: Api-Token $IBLAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Ada Lovelace",
    "primary_email": "[email protected]",
    "lifecycle_stage": "lead"
  }'

Notes

  • CRM is served via the DM gateway at https://api.iblai.app/dm/api/crm/ (equivalent to the legacy https://platform.iblai.app/api/crm/ host; skills standardize on the api.iblai.app/dm form).
  • Lifecycle stages are lead | qualified | opportunity | customer | churned.
  • A CRM Person auto-links to a Platform user when a signup matches by email.
  • Stages are nested under a pipeline; deal transitions go through the deal actions (move-stage/, won/, lost/) rather than ad-hoc edits.
  • Every read is scoped to your org (the token's platform), so a record in another org returns 404, not 403 — existence is never leaked. Treat 404 as "not found or not visible to you".

Schema

Field-level request/response shape (Mode req/opt/ro) for every resource, plus the enums and the confirmed filter query params, live in a reference file to keep this skill scannable: references/schema.md. Read it when you need exact field names, types, defaults, or which filters a list GET accepts.

Reference material

The endpoints and field schemas above are the authoritative, code-verified surface. These companion files (ported from the CRM developer guide) preserve the surrounding concepts, workflows, and guidance — read them for depth, not for endpoint truth:

  • references/schema.md — field-level request/response shape (Mode req/opt/ro), enums, and the confirmed filter query params for every resource.
  • references/guide.md — concepts & data model: system overview, write side-effects, the deal-status state machine, auth/security notes, the object graph, the resource map, and per-resource deletion/cascade behavior.
  • references/quickstart.md — end-to-end worked walkthrough: capture a lead, find the seeded pipeline, open a deal, move it through stages, and close it won.
  • references/workflows.md — subsystem lifecycles: person onboarding (link / invite / merge / auto-link), deal lifecycle, activity timeline & auto-records, tagging, and CRM notifications (cross-refs /iblai-api-notification).
  • references/operations.md — filtering & pagination, the RBAC role/permission matrix (cross-refs /iblai-api-rbac), the error reference, and best practices.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.