Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Shuttio for Twenty: import HubSpot, Pipedrive, Affinity, Attio or CSV data into Twenty
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Adds an Import with Shuttio page to the left menu of your Twenty workspace. From that page you move your HubSpot data into Twenty: link a Shuttio account, connect HubSpot, review the field mapping, check a free sample, pay, and run the full migration. The command Import data with Shuttio (Cmd+K) opens the same page.
The page reads HubSpot, Attio or Pipedrive: pick the source at the top. Affinity, Salesforce, another Twenty workspace and CSV files still go through https://www.shuttio.com with Twenty as the destination.
App owner, once per Twenty server. In Twenty, open Settings → Developers → Shuttio → Config and fill in HUBSPOT_CLIENT_ID and HUBSPOT_CLIENT_SECRET: the client ID and secret of the Shuttio HubSpot app. The HubSpot app must list https://api.twenty.com/auth/apps/callback (Twenty Cloud) as a redirect URL.
For Attio, fill in ATTIO_CLIENT_ID and ATTIO_CLIENT_SECRET (the Shuttio Attio app, with the same callback added to its redirect URLs). For Pipedrive, fill in PIPEDRIVE_CLIENT_ID and PIPEDRIVE_CLIENT_SECRET of a separate Pipedrive app whose callback URL is https://api.twenty.com/auth/apps/callback: Pipedrive allows one callback URL per app. A source without its variables cannot be connected; the others still work.
Workspace admin, once per workspace.
Step 1 opens Shuttio in a new tab: you sign in to Shuttio and connect this workspace there with Twenty's OAuth. Use an admin account: Shuttio adds custom fields, options and objects.
Not moved: emails (Twenty takes in mail only through its own mailbox sync), HubSpot lists (Twenty has views, not static lists), and a deal's contacts beyond the first (an opportunity has one point of contact).
The sample is free: 5% of each object, 10 to 1,000 records, picked at random, with linked records. You check it in Twenty, then pay and run the rest. Records the sample created are matched, not duplicated. Roll back removes the records, notes, tasks and links the migration created, then the fields and empty objects it added.
The sample is free. The full migration is paid once, by the number of records counted in HubSpot:
| Records | Price |
|---|---|
| up to 50,000 | $249 |
| up to 100,000 | $499 |
| up to 200,000 | $749 |
| up to 500,000 | $999 |
| up to 1,000,000 | $1,499 |
| up to 5,000,000 | $4,749 |
| over 5,000,000 | email [email protected] |
Payment runs through Stripe Checkout in a new tab. Current prices: https://www.shuttio.com/pricing
What leaves the workspace, and where it goes. Everything goes to Shuttio at https://www.shuttio.com. Processing runs on Vercel in the United States; the subprocessor list is at https://www.shuttio.com/security.
What Shuttio keeps, and for how long. Shuttio does not keep your records. It keeps the structure, the field mapping and a map of HubSpot ids to Twenty ids, which makes a re-run safe and a rollback complete. A value that failed to import is kept in the error report and cleared 14 days after the migration finishes. Shuttio's Twenty OAuth token is encrypted at rest and deleted 14 days after the migration finishes.
How to delete. Uninstalling the app deletes the HubSpot connection from Twenty. To delete your Shuttio account and everything it holds, email [email protected].
What the app can read in Twenty. Nothing. Its role has no object permissions; Shuttio writes through its own OAuth connection.
Twenty Cloud, server version 2.51.0 or later (engines.twenty in package.json).
Self-hosted Twenty 2.51.0 or later should work but is not tested. Its server admin enters the client ID and secret of a HubSpot app that lists https://<your-twenty-server>/auth/apps/callback as a redirect URL, and Shuttio must reach the server over HTTPS.
Shuttio fetches the HubSpot token from the app's route /shuttio/source-token. Twenty authenticates every caller of that route but does not tell the app which OAuth client issued the caller's token, so the app also requires a secret it generated, kept in its own key-value store and sent only to Shuttio. A member or API key of this workspace without that secret gets a 403.
Help: [email protected]. Terms: https://www.shuttio.com/terms
Development and publishing: SETUP.md.