Secrets
Secrets store encrypted values for use in node configuration via template tags — separately from Credentials (SMTP, OAuth, API auth profiles).
Secrets vs credentials
| Secrets | Credentials | |
|---|---|---|
| Purpose | Arbitrary secret strings (tokens, IDs, shared keys) | Structured auth for mail / HTTP / webhooks |
| Template tag | {{secrets.your_key}} |
Usually selected via credential pickers |
| UI | Filament Secrets resource | Filament Credentials resource |
Use secrets when a node needs a raw value in a header, URL, or message body without creating a full credential record.
Creating a secret
- Open Voodflow → Secrets.
- Create a record with a stable key (e.g.
stripe_webhook_secret). - Paste the value; it is encrypted at rest in your database.
Using secrets in nodes
{{secrets.key}} resolves only on HTTP Request and Send Webhook (URL, headers, query, and body). Other nodes leave the tag unresolved so a secret cannot leak through mail, notifications, or PHP output.
TEXT
Authorization: Bearer {{secrets.internal_api_token}}
Whitespace inside tags is allowed: {{ secrets.internal_api_token }}.
Security notes
- Treat Filament access to Secrets like access to production credentials.
- Resolved plaintext is tracked and replaced with
[REDACTED_SECRET]in execution logs, dry-run output, and values passed downstream. - Do not log resolved tag values in custom PHP nodes. Custom nodes do not receive
allow_secretsunless you opt in explicitly inside that node. - Rotate secrets by updating the value; workflows keep using the same key name.
- Prefer Credentials for SMTP/OAuth so tokens stay out of free-text fields when a picker exists.