Skip to main content

How placeholders work

Workflows contain template tokens like {{FLEXCRED_ANTHROPIC_ID_DERCXELF}} that get replaced at deployment time with real values. This is how Codika makes a single workflow definition work for multiple users, each with their own credentials and configuration. Pattern: {{TYPE_KEY_SUFFIX}}
  • TYPE: The placeholder category (e.g., FLEXCRED, USERDATA)
  • KEY: The specific value being referenced (e.g., ANTHROPIC_ID, PROCESS_INSTANCE_UID)
  • SUFFIX: The type name reversed (e.g., FLEXCREDDERCXELF)
The reversed suffix ensures placeholder patterns are unique and cannot collide with real data.

Complete reference

PROCDATA — Process-level values

Suffix: _ATADCORP | Replaced at: First deployment Values derived from the process (project) itself. Same for all users.
PlaceholderValue
{{PROCDATA_PROCESS_ID_ATADCORP}}The process/project ID
{{PROCDATA_NAMESPACE_ATADCORP}}Process namespace
Common usage: Webhook paths, API URLs
"path": "{{PROCDATA_PROCESS_ID_ATADCORP}}/{{USERDATA_PROCESS_INSTANCE_UID_ATADRESU}}/analyze"

USERDATA — Per-user runtime values

Suffix: _ATADRESU | Replaced at: Instance deployment Values specific to each user’s installation.
PlaceholderValue
{{USERDATA_PROCESS_INSTANCE_UID_ATADRESU}}User’s process instance ID
{{USERDATA_USER_ID_ATADRESU}}User’s unique ID
{{USERDATA_ORGANIZATION_ID_ATADRESU}}User’s organization ID
Common usage: Webhook IDs, Codika Init parameters
"webhookId": "{{USERDATA_PROCESS_INSTANCE_UID_ATADRESU}}"

MEMSECRT — Member-level secrets

Suffix: _TRCESMEM | Replaced at: Instance deployment Per-user secrets for platform API authentication.
PlaceholderValue
{{MEMSECRT_EXECUTION_AUTH_TRCESMEM}}Execution authentication token
Common usage: Codika Init node for schedule/service event triggers
"memberSecret": "{{MEMSECRT_EXECUTION_AUTH_TRCESMEM}}"

FLEXCRED — Flexible AI credentials

Suffix: _DERCXELF | Replaced at: Deployment AI provider credentials with fallback logic: uses the organization’s own API key if configured, otherwise falls back to Codika’s shared keys (pay-per-use credits).
ProviderID placeholderName placeholder
Anthropic{{FLEXCRED_ANTHROPIC_ID_DERCXELF}}{{FLEXCRED_ANTHROPIC_NAME_DERCXELF}}
OpenAI{{FLEXCRED_OPENAI_ID_DERCXELF}}{{FLEXCRED_OPENAI_NAME_DERCXELF}}
Tavily{{FLEXCRED_TAVILY_ID_DERCXELF}}{{FLEXCRED_TAVILY_NAME_DERCXELF}}
Google Gemini{{FLEXCRED_GOOGLE_GEMINI_ID_DERCXELF}}{{FLEXCRED_GOOGLE_GEMINI_NAME_DERCXELF}}
X AI{{FLEXCRED_X_AI_ID_DERCXELF}}{{FLEXCRED_X_AI_NAME_DERCXELF}}
Open Router{{FLEXCRED_OPEN_ROUTER_ID_DERCXELF}}{{FLEXCRED_OPEN_ROUTER_NAME_DERCXELF}}
Mistral{{FLEXCRED_MISTRAL_ID_DERCXELF}}{{FLEXCRED_MISTRAL_NAME_DERCXELF}}
Cohere{{FLEXCRED_COHERE_ID_DERCXELF}}{{FLEXCRED_COHERE_NAME_DERCXELF}}
Deep Seek{{FLEXCRED_DEEP_SEEK_ID_DERCXELF}}{{FLEXCRED_DEEP_SEEK_NAME_DERCXELF}}
Common usage: LLM model credentials
"credentials": {
  "anthropicApi": {
    "id": "{{FLEXCRED_ANTHROPIC_ID_DERCXELF}}",
    "name": "{{FLEXCRED_ANTHROPIC_NAME_DERCXELF}}"
  }
}

USERCRED — User integration credentials

Suffix: _DERCRESU | Replaced at: Instance deployment OAuth tokens from the user’s connected integrations.
IntegrationID placeholderName placeholder
Gmail{{USERCRED_GOOGLE_GMAIL_ID_DERCRESU}}{{USERCRED_GOOGLE_GMAIL_NAME_DERCRESU}}
Google Sheets{{USERCRED_GOOGLE_SHEETS_ID_DERCRESU}}{{USERCRED_GOOGLE_SHEETS_NAME_DERCRESU}}
Google Drive{{USERCRED_GOOGLE_DRIVE_ID_DERCRESU}}{{USERCRED_GOOGLE_DRIVE_NAME_DERCRESU}}
Google Calendar{{USERCRED_GOOGLE_CALENDAR_ID_DERCRESU}}{{USERCRED_GOOGLE_CALENDAR_NAME_DERCRESU}}
Microsoft (Teams, Outlook){{USERCRED_MICROSOFT_ID_DERCRESU}}{{USERCRED_MICROSOFT_NAME_DERCRESU}}
Calendly{{USERCRED_CALENDLY_ID_DERCRESU}}{{USERCRED_CALENDLY_NAME_DERCRESU}}
Notion{{USERCRED_NOTION_ID_DERCRESU}}{{USERCRED_NOTION_NAME_DERCRESU}}
Common usage: n8n node credentials
"credentials": {
  "gmailOAuth2": {
    "id": "{{USERCRED_GOOGLE_GMAIL_ID_DERCRESU}}",
    "name": "{{USERCRED_GOOGLE_GMAIL_NAME_DERCRESU}}"
  }
}

ORGCRED — Organization-level credentials

Suffix: _DERCGRO | Replaced at: Deployment Credentials shared across the entire organization (e.g., a shared Slack workspace token).
IntegrationID placeholderName placeholder
Slack{{ORGCRED_SLACK_ID_DERCGRO}}{{ORGCRED_SLACK_NAME_DERCGRO}}
WhatsApp{{ORGCRED_WHATSAPP_ID_DERCGRO}}{{ORGCRED_WHATSAPP_NAME_DERCGRO}}
Pipedrive{{ORGCRED_PIPEDRIVE_ID_DERCGRO}}{{ORGCRED_PIPEDRIVE_NAME_DERCGRO}}
Folk CRM{{ORGCRED_FOLK_ID_DERCGRO}}{{ORGCRED_FOLK_NAME_DERCGRO}}

ORGSECRET — Organization secrets

Suffix: _TERCESORG | Replaced at: Deployment Configuration values stored at the organization level.
PlaceholderValue
{{ORGSECRET_N8N_BASE_URL_TERCESORG}}Organization’s n8n instance URL
{{ORGSECRET_ERROR_WORKFLOW_ID_TERCESORG}}Platform error handler workflow ID
Common usage: Workflow settings, webhook URLs
"settings": {
  "errorWorkflow": "{{ORGSECRET_ERROR_WORKFLOW_ID_TERCESORG}}"
}

SYSCREDS — System-level credentials

Suffix: _SDERCSYS | Replaced at: Deployment Platform-level system credentials managed by Codika.
PlaceholderValue
{{SYSCREDS_ANTHROPIC_ID_SDERCSYS}}System Anthropic API key

INSTPARM — Deployment parameters

Suffix: _MRAPTSNI | Replaced at: Instance deployment User-configured values set during process installation. Defined in getDeploymentInputSchema().
// In Code nodes — no extra quotes needed, context-aware serialization
const companyName = {{INSTPARM_COMPANY_NAME_MRAPTSNI}};     // String → "Acme Corp"
const maxItems = {{INSTPARM_MAX_ITEMS_MRAPTSNI}};           // Number → 50
const enableFeature = {{INSTPARM_ENABLE_FEATURE_MRAPTSNI}}; // Boolean → true
const domains = {{INSTPARM_ALLOWED_DOMAINS_MRAPTSNI}};      // Array → ["a.com","b.com"]
See Deployment Parameters for full usage guide.

INSTCRED — Instance-level credentials

Suffix: _DERCTSNI | Replaced at: Instance deployment Per-deployment database connections or service credentials.
PlaceholderValue
{{INSTCRED_SUPABASE_ID_DERCTSNI}}Supabase connection
{{INSTCRED_POSTGRESQL_ID_DERCTSNI}}PostgreSQL connection

SUBWKFL — Sub-workflow references

Suffix: _LFKWBUS | Replaced at: Deployment Resolved n8n workflow IDs for sub-workflows. The key is the sub-workflow’s workflowTemplateId.
// In Execute Workflow node
"workflowId": {
  "__rl": true,
  "mode": "id",
  "value": "{{SUBWKFL_text-processor_LFKWBUS}}"
}
See Sub-Workflows for the full pattern.

Replacement timeline

WhenPlaceholder types replaced
First deployment (process creation)PROCDATA, ORGSECRET, SYSCREDS
Instance deployment (per-user)USERDATA, MEMSECRT, USERCRED, ORGCRED, FLEXCRED, INSTPARM, INSTCRED, SUBWKFL

Validation

The CLI validates placeholder syntax via the CK-PLACEHOLDERS rule:
codika-helper verify use-case ./my-use-case
Common issues:
  • Wrong suffix (e.g., using _DERCXELF for a USERCRED placeholder)
  • Typo in type name
  • Missing closing }}