Interact with Twenty CRM (self-hosted) via REST/GraphQL.
Interact with your self-hosted Twenty instance via REST and GraphQL.
Set these env vars directly, or place them in config/twenty.env:
TWENTY_BASE_URL (e.g. https://crm.example.com or http://localhost:3000)TWENTY_API_KEY (Bearer token)Scripts auto-load config/twenty.env relative to this skill. You can override the path with TWENTY_CONFIG_FILE.
curlpython3REST GET: skills/twenty-crm/scripts/twenty-rest-get.sh "/companies" 'filter={"name":{"ilike":"%acme%"}}' "limit=10" "offset=0"
REST POST: skills/twenty-crm/scripts/twenty-rest-post.sh "/companies" '{"name":"Acme"}'
REST PATCH: skills/twenty-crm/scripts/twenty-rest-patch.sh "/companies/<id>" '{"employees":550}'
REST DELETE: skills/twenty-crm/scripts/twenty-rest-delete.sh "/companies/<id>"
GraphQL: skills/twenty-crm/scripts/twenty-graphql.sh 'query { companies(limit: 5) { totalCount } }'
skills/twenty-crm/scripts/twenty-create-company.sh "Acme" "acme.com" 500skills/twenty-crm/scripts/twenty-find-companies.sh "acme" 10/rest/...) and GraphQL (/graphql).401.TWENTY_API_KEY out of git and avoid storing it in shared/world-readable files.config/twenty.env, prefer restrictive permissions (for example chmod 600 config/twenty.env).key=value arguments; do not append raw query strings to REST paths.ZIP package — ready to use