Secrets you give Swan
Some catalog integrations and most custom MCP servers authenticate with an API key or header secret from the other tool, rather than OAuth. You paste the key in when connecting from Tools; Swan stores it and uses it on your behalf whenever the agent calls that tool. Connections (and their secrets) are shared at the org level, so connect only tools your whole team should be able to act through. To rotate a compromised key, generate a new one in the source tool and reconnect the integration on Tools.Secrets for the agent’s own API calls
Beyond integration connections, you can store standalone named secrets — at the org level or personal to you — at Settings → Secrets, for the agent to use when it runs code. This is the escape hatch for any API Swan doesn’t integrate with: store the key as a secret, then ask Swan (in chat or in a trigger) to call that API. The agent references the secret by name; the actual value is substituted only at execution time and is never shown, logged, or returned in output — code that would leak a resolved secret value into an output file is blocked automatically. Personal secrets override org-level secrets with the same name. See direct API access for how Swan builds and reuses these integrations.Webhook trigger URLs
Webhook-sourced triggers work the other way around — Swan gives you a unique URL to call when you want to fire the trigger, and that URL has a secret embedded directly in its path. Anyone with the URL can trigger the automation, so treat the URL itself as a credential: don’t post it anywhere public, and regenerate the trigger from its configuration tab (https://agent.getswan.com/triggers/{triggerId}) if you think it’s leaked, which issues a new URL.