From corezoid
Manages Corezoid aliases—create, modify, delete, link/unlink, and reference processes by name in JSON instead of numeric IDs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/corezoid:corezoid-alias-managerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
An alias is a human-readable `short_name` (e.g. `payment-service`, `send-otp`) that
An alias is a human-readable short_name (e.g. payment-service, send-otp) that
maps to a process (conv). Aliases serve two purposes:
@alias-name as conv_id instead of a numeric
process ID. This makes processes portable across environments and removes hardcoded IDs.callback_hash used to send
tasks to the process via the API Gateway URL.Alias naming rules (same as Corezoid short names):
[a-z], digits [0-9], and hyphens -payment-checkout, send-otp, create-user-v2MyAlias, PAYMENT, a| Tool | Purpose |
|---|---|
create-alias | Create an alias and link it to a process in one step |
Note:
list,modify,delete, andunlinkoperations are not yet exposed as MCP tools. Use the direct API calls documented below to perform them.
Once an alias exists, replace the numeric conv_id with @alias-name in any node that
calls another process:
api_rpc){
"type": "api_rpc",
"conv_id": "@payment-checkout",
"extra": { "amount": "{{amount}}", "currency": "{{currency}}" },
"extra_type": { "amount": "number", "currency": "string" },
"err_node_id": "<error_node_id>"
}
api_copy){
"type": "api_copy",
"conv_id": "@send-notification",
"ref": "{{unique_ref}}",
"mode": "create",
"err_node_id": "<error_node_id>"
}
set_param or condition{{conv[@user-states].ref[{{task_ref}}].status}}
This reads the status field of the task with reference {{task_ref}} from the
@user-states state diagram process.
Check whether the user provided a file path, process name, or process ID.
If a file path is given, the process ID is the leading number in the filename
(e.g. 1834583_My_Process.conv.json → process_id = 1834583).
If only a name is given, search locally:
find . -name "*.conv.json" | xargs grep -l '"title": "My Process"'
Before creating, verify the short_name is not taken. Call the list aliases API
(see "Workflow: List aliases" below) and scan the short_name fields.
If a conflict is found, suggest an alternative name to the user.
Apply the naming rules: lowercase, hyphens, no spaces or underscores, at least 3 chars. Suggest a name derived from the process title if the user hasn't specified one.
Call MCP tool create-alias with:
process_path: relative path to the .conv.json fileshort_name: the alias short namecreate-alias(
process_path="./671255_develop/1834583_My_Process.conv.json",
short_name="payment-checkout"
)
The tool creates the alias, links it to the process, and returns the alias_id.
Requires COREZOID_STAGE_ID to be set in .env.
After creating the alias, replace any numeric conv_id references to this process
across the project with @short-name:
grep -rl '"conv_id": 1834583' . --include="*.conv.json"
For each file found, replace "conv_id": 1834583 with "conv_id": "@payment-checkout".
Then for each modified file, run lint-process and on success push-process.
After pushing, tell the user: "Changes deployed. Please refresh the page in Corezoid to see the updated process."
The MCP server does not yet expose a list-aliases tool. Use the Corezoid API directly.
Required fields:
company_id — workspace ID (from .env WORKSPACE_ID)project_id — project ID (from the *.stage.json file in the project root)stage_id — stage ID (from .env COREZOID_STAGE_ID)API call:
POST {COREZOID_API_URL}/api/2/json
Authorization: Simulator {ACCESS_TOKEN}
Content-Type: application/json
{
"ops": [{
"type": "list",
"obj": "aliases",
"sort": "date",
"order": "desc",
"id": "<WORKSPACE_ID>",
"company_id": "<WORKSPACE_ID>",
"project_id": <PROJECT_ID>,
"stage_id": <STAGE_ID>
}]
}
Response fields per alias:
| Field | Description |
|---|---|
obj_id | Alias numeric ID (needed for modify/delete/link) |
title | Human-readable display title |
short_name | The @short-name used in conv_id references |
description | Optional description |
obj_to_id | Process (conv) ID this alias points to |
obj_to_type | Always "conv" for process aliases |
uuid | Alias UUID |
create_time / change_time | Unix timestamps |
project_title, stage_title | Context information |
To rename an alias or change its title/description (does NOT change which process it points to — use unlink + link for that).
API call:
POST {COREZOID_API_URL}/api/2/json
Authorization: Simulator {ACCESS_TOKEN}
Content-Type: application/json
{
"ops": [{
"type": "modify",
"obj": "alias",
"obj_id": <ALIAS_ID>,
"title": "New Display Title",
"short_name": "new-short-name",
"description": "Updated description",
"company_id": "<WORKSPACE_ID>",
"project_id": <PROJECT_ID>,
"stage_id": <STAGE_ID>
}]
}
⚠️ Changing
short_nameinvalidates all"conv_id": "@old-name"references across every process in the project. Grep all.conv.jsonfiles and update them, then push each modified process.
Use two API calls: unlink from the current process, then link to the new one.
POST {COREZOID_API_URL}/api/2/json
{
"ops": [{
"type": "link",
"obj": "alias",
"link": false,
"obj_id": <ALIAS_ID>,
"obj_to_id": <CURRENT_PROCESS_ID>,
"obj_to_type": "conv",
"company_id": "<WORKSPACE_ID>"
}]
}
POST {COREZOID_API_URL}/api/2/json
{
"ops": [{
"type": "link",
"obj": "alias",
"link": true,
"obj_id": <ALIAS_ID>,
"obj_to_id": <NEW_PROCESS_ID>,
"obj_to_type": "conv",
"company_id": "<WORKSPACE_ID>"
}]
}
⚠️ Before deleting, check all
.conv.jsonfiles for"conv_id": "@alias-name"references. Deleting an alias breaks every process that uses it.
API call:
POST {COREZOID_API_URL}/api/2/json
Authorization: Simulator {ACCESS_TOKEN}
Content-Type: application/json
{
"ops": [{
"type": "delete",
"obj": "alias",
"obj_id": <ALIAS_ID>,
"company_id": "<WORKSPACE_ID>"
}]
}
After deletion, replace all "conv_id": "@alias-name" references with the numeric
process ID (or create a new alias), then push each affected process.
The callback hash is the secret in a process's or alias's Direct URL — the public webhook endpoint external systems POST tasks to. A process and each of its aliases have independent hashes; rotating or deleting one does not affect the others.
Get the hash — by process (conv_id):
POST {COREZOID_API_URL}/api/2/json
Authorization: Simulator {ACCESS_TOKEN}
Content-Type: application/json
{
"ops": [{
"type": "get",
"obj": "callback_hash",
"conv_id": <PROCESS_ID>,
"company_id": "<WORKSPACE_ID>"
}]
}
Get the hash — by alias (alias_id):
POST {COREZOID_API_URL}/api/2/json
Authorization: Simulator {ACCESS_TOKEN}
Content-Type: application/json
{
"ops": [{
"type": "get",
"obj": "callback_hash",
"obj_type": "alias",
"alias_id": <ALIAS_ID>,
"company_id": "<WORKSPACE_ID>"
}]
}
Response (both):
{ "request_proc": "ok", "ops": [{ "proc": "ok", "callback_hash": "19e339a865d676db68b776f440443821c49a0e30" }] }
Other type values on the same obj: "callback_hash" (swap "type": "get" for one of
these, keeping the same conv_id/alias_id field):
type | Effect |
|---|---|
create | Enables the Direct URL and issues the first hash |
get | Returns the current hash without changing anything |
modify | Rotates the hash — the previous URL stops working immediately |
delete | Disables the Direct URL entirely |
External submission URL:
⚠️ The URL format is installation-specific — always verify against the Direct URL shown in the Corezoid UI for that process/alias before handing it to another system. Two formats have been observed:
Cloud (dedicated API Gateway):
POST {COREZOID_APIGW_URL}/api/1/json/<WORKSPACE_ID>/<callback_hash>
Content-Type: application/json
{ "ops": [{ "ref": "unique-task-ref", "type": "create", "obj": "task", "data": { "key": "value" } }] }
Where COREZOID_APIGW_URL defaults to https://api-apigw.corezoid.com.
Self-hosted (served off the same account host, no separate gateway):
By conv_id: https://<host>/api/2/json/public/<conv_id>/<callback_hash>
By alias: https://<host>/api/2/json/public/@<alias_short_name>/<project_short_name>/<stage_short_name>/<company_id>/<callback_hash>
<host> is the same host as COREZOID_API_URL. Some installations serve this under
/api/1/json/public/... instead of /api/2/ — don't assume without confirming once
per installation.
Either way, the hash in the URL is the authentication — treat it like a secret. Prefer alias-based URLs for anything referenced by external systems: an alias can be re-pointed at a new process without invalidating URLs already handed out.
All API calls above require company_id, project_id, stage_id. Find them:
| Value | Where to find it |
|---|---|
WORKSPACE_ID (company_id) | .env file — WORKSPACE_ID=... |
COREZOID_STAGE_ID (stage_id) | .env file — COREZOID_STAGE_ID=... |
project_id | Read the *.stage.json file in the project root; field project_id |
COREZOID_API_URL | .env file — COREZOID_API_URL=... |
ACCESS_TOKEN | ~/.corezoid/credentials or .env |
If .env is missing, run the corezoid-init skill to set up the environment.
The create-alias MCP tool creates and links in a single request. If you need
finer control (create first, link later), use the two-step API flow:
{
"ops": [{
"type": "create",
"obj": "alias",
"title": "My Alias Title",
"short_name": "my-alias",
"description": "",
"company_id": "<WORKSPACE_ID>",
"project_id": <PROJECT_ID>,
"stage_id": <STAGE_ID>
}]
}
Response: { "obj_id": <ALIAS_ID>, "proc": "ok" }
{
"ops": [{
"type": "link",
"obj": "alias",
"link": true,
"obj_id": <ALIAS_ID>,
"obj_to_id": <PROCESS_ID>,
"obj_to_type": "conv",
"company_id": "<WORKSPACE_ID>"
}]
}
| Mistake | Correct approach |
|---|---|
"conv_id": "@My-Alias" (uppercase) | "conv_id": "@my-alias" — always lowercase |
| Deleting an alias without updating referencing processes | Search all .conv.json first with grep -r "@alias-name" |
Renaming short_name without updating process JSON | Same — grep, replace, push each changed process |
Creating an alias with short_name that already exists | Use list aliases API call first to check |
| Forgetting to push processes after replacing numeric IDs with aliases | Always lint-process then push-process for every modified file |
Using alias without COREZOID_STAGE_ID set | Run corezoid-init or set COREZOID_STAGE_ID in .env |
| Situation | Action |
|---|---|
Process has numeric conv_id references from other processes | Create alias, then replace all numeric IDs |
| Setting up a new process that others will call | Create alias at creation time, use @alias from the start |
| Want to swap which process an alias points to (blue/green deploy) | Unlink + Link (keep the short_name, update the target) |
| Decommissioning a process | Check alias references, delete alias, update or deprecate callers |
| External system needs to send tasks to a process | Get callback hash for the alias, build API Gateway URL |
Reviewing a process for hardcoded numeric conv_id | Flag each one, suggest alias creation and replacement |
| Path | When to read |
|---|---|
${CLAUDE_PLUGIN_ROOT}/docs/nodes/call-process-node.md | api_rpc node — where conv_id: "@alias" is used |
${CLAUDE_PLUGIN_ROOT}/docs/node-structures.md | JSON schemas for api_rpc and api_copy (both use conv_id) |
${CLAUDE_PLUGIN_ROOT}/docs/nodes/set-parameters-dynamic-values.md | {{conv[@alias].ref[...].field}} state store read pattern |
${CLAUDE_PLUGIN_ROOT}/docs/variables-guide.md | Variable naming rules (same convention as alias short names) |
${CLAUDE_PLUGIN_ROOT}/skills/corezoid-review/SKILL.md | Step 10: External Dependencies — alias audit and creation |
npx claudepluginhub corezoid/corezoid-ai-plugin --plugin corezoidUniversal Corezoid assistant. Use when the user asks anything about Corezoid processes, wants to work with process JSON files, mentions process nodes, MCP tools, process validation, or any Corezoid-specific task. Also use when the user mentions "Corezoid", "BPM process", "conv.json", "push process", "run task", or asks for general platform knowledge. This skill provides deep knowledge of the platform model and guides you to use the Corezoid MCP tools correctly.
Creates, reads, updates, and deletes Pipefy traditional and AI automations (if/then rules and prompt-driven) using 16 MCP tools. Also supports simulation and logs.
Manages actors (records) for Simulator.Company form templates: create, read, update, delete, search, filter, and query connected processes/API keys.