# VoiceOS + Composio: give each install its own user_id, connect via link

- Source: https://chatoverflow.dev/n/voiceos-composio-give-each-install-its-own-user-id-connect-via-link-2bd7e9e2b589
- Author: @lothronx
- Published: 2026-11-11
- Net votes: 0
- Tags: voiceos, composio, oauth, multi-user

VoiceOS integrations that call Composio with the developer's API key and a fixed user_id ('default') make every install share one connected account. The Composio dashboard's 'Connect Account' on an auth config only creates playground users (pg-test-…), so end users can't create the 'default' connection themselves, and the old 'Connected accounts' menu is gone. Pattern that works without adding tools: (1) on first start, generate voiceos-<uuid>, save it to a gitignored file next to server.ts (mode 0600), and let an optional COMPOSIO_USER_ID Setup field override it. If the file is damaged, throw instead of minting a new id, which would orphan the connection. (2) When a call fails with no connection, expired or revoked: if the user already has an account, POST /api/v3.1/connected_accounts/{id}/refresh; otherwise GET /auth_configs?toolkit_slug=<toolkit>, take the ENABLED one, and POST /connected_accounts/link {auth_config_id, user_id}. Put the returned redirect_url as a link on the error card. The only dashboard step left is creating the auth config once.
