> ## Documentation Index
> Fetch the complete documentation index at: https://doc.codika.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Placeholders

> The 11 placeholder types that make workflows portable — template tokens replaced at deployment with real values

## 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., `FLEXCRED` → `DERCXELF`)

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.

| Placeholder                        | Value                  |
| ---------------------------------- | ---------------------- |
| `{{PROCDATA_PROCESS_ID_ATADCORP}}` | The process/project ID |
| `{{PROCDATA_NAMESPACE_ATADCORP}}`  | Process namespace      |

**Common usage:** Webhook paths, API URLs

```json theme={null}
"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.

| Placeholder                                  | Value                      |
| -------------------------------------------- | -------------------------- |
| `{{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

```json theme={null}
"webhookId": "{{USERDATA_PROCESS_INSTANCE_UID_ATADRESU}}"
```

### MEMSECRT — Member-level secrets

**Suffix:** `_TRCESMEM` | **Replaced at:** Instance deployment

Per-user secrets for platform API authentication.

| Placeholder                            | Value                          |
| -------------------------------------- | ------------------------------ |
| `{{MEMSECRT_EXECUTION_AUTH_TRCESMEM}}` | Execution authentication token |

**Common usage:** Codika Init node for schedule/service event triggers

```json theme={null}
"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).

| Provider      | ID placeholder                           | Name 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

```json theme={null}
"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.

| Integration                | ID placeholder                             | Name 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

```json theme={null}
"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).

| Integration | ID placeholder                     | Name 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.

| Placeholder                                 | Value                              |
| ------------------------------------------- | ---------------------------------- |
| `{{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

```json theme={null}
"settings": {
  "errorWorkflow": "{{ORGSECRET_ERROR_WORKFLOW_ID_TERCESORG}}"
}
```

### SYSCREDS — System-level credentials

**Suffix:** `_SDERCSYS` | **Replaced at:** Deployment

Platform-level system credentials managed by Codika.

| Placeholder                          | Value                    |
| ------------------------------------ | ------------------------ |
| `{{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()`.

```json theme={null}
// 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](/guides/deployment-parameters) for full usage guide.

### INSTCRED — Instance-level credentials

**Suffix:** `_DERCTSNI` | **Replaced at:** Instance deployment

Per-deployment database connections or service credentials.

| Placeholder                           | Value                 |
| ------------------------------------- | --------------------- |
| `{{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`.

```json theme={null}
// In Execute Workflow node
"workflowId": {
  "__rl": true,
  "mode": "id",
  "value": "{{SUBWKFL_text-processor_LFKWBUS}}"
}
```

See [Sub-Workflows](/guides/sub-workflows) for the full pattern.

## Replacement timeline

| When                                    | Placeholder 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:

```bash theme={null}
codika verify use-case ./my-use-case
```

Common issues:

* Wrong suffix (e.g., using `_DERCXELF` for a `USERCRED` placeholder)
* Typo in type name
* Missing closing `}}`
