@growthub/cli 0.3.54 → 0.3.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/worker-kits/growthub-ai-website-cloner-v1/.env.example +7 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/QUICKSTART.md +116 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/NEW-CLIENT.md +22 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/_template/brand-kit.md +27 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/brands/growthub/brand-kit.md +26 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/bundles/growthub-ai-website-cloner-v1.json +53 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/ai-website-cloner-fork-integration.md +118 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/design-token-system.md +135 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/multi-phase-pipeline.md +129 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/docs/parallel-builder-dispatch.md +103 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/clone-brief-sample.md +54 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/component-spec-sample.md +123 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/platform-handoff-sample.md +102 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/examples/visual-qa-sample.md +119 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/README.md +71 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/growthub-meta/kit-standard.md +47 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/kit.json +105 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/output/README.md +26 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/output-standards.md +75 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/runtime-assumptions.md +70 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/check-deps.sh +50 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/clone-fork.sh +66 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/setup/verify-env.mjs +78 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/skills.md +186 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/asset-manifest.md +57 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/builder-dispatch-plan.md +92 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/clone-brief.md +59 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/component-spec.md +124 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/design-token-extraction.md +89 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/platform-handoff.md +114 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/reconnaissance-report.md +77 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/visual-qa-checklist.md +107 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/validation-checklist.md +76 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/workers/ai-website-cloner-operator/CLAUDE.md +256 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/.env.example +40 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/QUICKSTART.md +114 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/NEW-CLIENT.md +42 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/_template/brand-kit.md +49 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/brands/growthub/brand-kit.md +50 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/bundles/growthub-open-montage-studio-v1.json +55 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/cms-node-bridge.md +152 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/open-montage-fork-integration.md +120 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/pipeline-reference.md +147 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/docs/provider-adapter-layer.md +105 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/cms-node-video-gen-sample.md +109 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/pipeline-selection-sample.md +67 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/platform-ready-handoff-sample.md +101 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/examples/video-production-brief-sample.md +68 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/README.md +7 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/growthub-meta/kit-standard.md +45 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/kit.json +107 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/output/README.md +34 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/output-standards.md +79 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/runtime-assumptions.md +86 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/check-deps.sh +43 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/clone-fork.sh +53 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/setup/verify-env.mjs +102 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/skills.md +254 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/asset-tracking.md +46 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/cms-node-pipeline-mapping.md +64 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/generation-batch-plan.md +70 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/pipeline-selection-brief.md +67 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/platform-ready-execution-handoff.md +103 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/prompt-matrix.md +48 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/provider-selection-brief.md +86 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/review-qa-checklist.md +59 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/scene-plan.md +65 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/video-production-brief.md +58 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/validation-checklist.md +46 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/workers/open-montage-studio-operator/CLAUDE.md +304 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/.env.example +15 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/QUICKSTART.md +90 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/NEW-CLIENT.md +57 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/_template/brand-kit.md +88 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/brands/growthub/brand-kit.md +92 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/bundles/growthub-twenty-crm-v1.json +56 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/api-and-webhooks.md +296 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/data-model-layer.md +172 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/docs/twenty-fork-integration.md +213 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-playbook-sample.md +172 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/crm-setup-sample.md +100 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/lead-enrichment-sample.md +117 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/examples/pipeline-automation-sample.md +132 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/README.md +114 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/growthub-meta/kit-standard.md +61 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/kit.json +108 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/output/README.md +46 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/output-standards.md +175 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/runtime-assumptions.md +150 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/check-deps.sh +56 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/clone-fork.sh +77 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/setup/verify-env.mjs +105 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/skills.md +401 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/api-query-plan.md +179 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-playbook.md +155 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/crm-setup-brief.md +94 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/custom-object-design.md +115 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/data-model-design.md +112 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/enrichment-field-map.md +100 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/import-mapping.md +139 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/integration-handoff.md +190 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/lead-enrichment-pipeline.md +128 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/pipeline-automation-brief.md +88 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/webhook-integration-spec.md +129 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/workspace-config-checklist.md +129 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/validation-checklist.md +115 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/workers/twenty-crm-operator/CLAUDE.md +310 -0
- package/package.json +1 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Workspace Config Checklist — [CLIENT NAME]
|
|
2
|
+
|
|
3
|
+
**Date:** YYYY-MM-DD
|
|
4
|
+
**Kit:** `growthub-twenty-crm-v1`
|
|
5
|
+
**Mode:** `[cloud / self-hosted / local-fork / agent-only]`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## PRE-LAUNCH CONFIGURATION CHECKLIST
|
|
10
|
+
|
|
11
|
+
Complete these tasks before the team starts using the CRM in production.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. WORKSPACE SETTINGS
|
|
16
|
+
|
|
17
|
+
- [ ] Workspace display name set (Settings > General)
|
|
18
|
+
- [ ] Workspace logo uploaded
|
|
19
|
+
- [ ] Default currency set
|
|
20
|
+
- [ ] Timezone confirmed
|
|
21
|
+
- [ ] Domain / subdomain configured (for self-hosted)
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 2. TEAM MEMBERS AND ROLES
|
|
26
|
+
|
|
27
|
+
| Member | Email | Role | Status |
|
|
28
|
+
|---|---|---|---|
|
|
29
|
+
| [CRM Admin] | [email] | Admin | [invited / active] |
|
|
30
|
+
| [Sales Rep 1] | [email] | Member | [invited / active] |
|
|
31
|
+
| [Sales Rep 2] | [email] | Member | [invited / active] |
|
|
32
|
+
| [CS Manager] | [email] | Member | [invited / active] |
|
|
33
|
+
|
|
34
|
+
- [ ] All invites sent (Settings > Members)
|
|
35
|
+
- [ ] All members have accepted and set passwords
|
|
36
|
+
- [ ] Roles confirmed for each member
|
|
37
|
+
- [ ] No test accounts remaining in member list
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 3. STANDARD OBJECTS CONFIGURED
|
|
42
|
+
|
|
43
|
+
| Object | Enabled | Custom fields added | Default view set |
|
|
44
|
+
|---|---|---|---|
|
|
45
|
+
| `Person` | [Yes] | [list custom fields] | [Yes / No] |
|
|
46
|
+
| `Company` | [Yes] | [list custom fields] | [Yes / No] |
|
|
47
|
+
| `Opportunity` | [Yes] | Stage options confirmed | [Yes / No] |
|
|
48
|
+
| `Note` | [Yes] | n/a | n/a |
|
|
49
|
+
| `Task` | [Yes] | n/a | n/a |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 4. CUSTOM OBJECTS CONFIGURED
|
|
54
|
+
|
|
55
|
+
| Object | Created | Fields added | Relationships set | Default view set |
|
|
56
|
+
|---|---|---|---|---|
|
|
57
|
+
| [CustomObject1] | [Yes / No] | [Yes / No] | [Yes / No] | [Yes / No] |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 5. VIEWS AND FILTERS
|
|
62
|
+
|
|
63
|
+
| View | Object | Filter | Sort | Assigned to |
|
|
64
|
+
|---|---|---|---|---|
|
|
65
|
+
| My Open Leads | Opportunity | stage IN [LEAD, QUALIFIED], assignee = me | createdAt desc | All sales reps |
|
|
66
|
+
| Pipeline Board | Opportunity | stage NOT IN [CLOSED_WON, CLOSED_LOST] | closeDate asc | All team |
|
|
67
|
+
| New Contacts (30d) | Person | createdAt > 30 days ago | createdAt desc | CRM Admin |
|
|
68
|
+
| [View name] | [Object] | [filter] | [sort] | [who] |
|
|
69
|
+
|
|
70
|
+
- [ ] All views created and tested
|
|
71
|
+
- [ ] Views shared with the correct team members
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 6. INTEGRATIONS ENABLED
|
|
76
|
+
|
|
77
|
+
| Integration | Status | Configured by | Notes |
|
|
78
|
+
|---|---|---|---|
|
|
79
|
+
| [Apollo enrichment] | [enabled / pending] | [developer] | See Lead Enrichment Pipeline doc |
|
|
80
|
+
| [Stripe webhook] | [enabled / pending] | [developer] | See Webhook Integration Spec |
|
|
81
|
+
| [Intercom webhook] | [enabled / pending] | [developer] | See Webhook Integration Spec |
|
|
82
|
+
| Email sync | [enabled / pending] | [CRM Admin] | Settings > Integrations > Email |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 7. WORKFLOW AUTOMATIONS ACTIVE
|
|
87
|
+
|
|
88
|
+
| Automation name | Trigger | Status | Tested? |
|
|
89
|
+
|---|---|---|---|
|
|
90
|
+
| [Automation 1] | [trigger] | [active / draft] | [Yes / No] |
|
|
91
|
+
| [Automation 2] | [trigger] | [active / draft] | [Yes / No] |
|
|
92
|
+
|
|
93
|
+
- [ ] All automations tested with a sample record
|
|
94
|
+
- [ ] No automations in draft state that should be live
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 8. API TOKENS GENERATED AND DISTRIBUTED
|
|
99
|
+
|
|
100
|
+
| Token name | Scope | Assigned to | Stored in |
|
|
101
|
+
|---|---|---|---|
|
|
102
|
+
| `growthub-production` | Workspace | CRM Admin | `.env` file on enrichment server |
|
|
103
|
+
| `enrichment-pipeline` | Workspace | [developer] | CI secrets / env |
|
|
104
|
+
| [token name] | [scope] | [assigned] | [stored where] |
|
|
105
|
+
|
|
106
|
+
- [ ] No tokens are hard-coded in application source code
|
|
107
|
+
- [ ] Tokens are stored in environment variables or a secrets manager
|
|
108
|
+
- [ ] Old/test tokens are revoked
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 9. EMAIL AND NOTIFICATION SETTINGS
|
|
113
|
+
|
|
114
|
+
- [ ] Email sync confirmed for CRM admin (or disabled if not in scope)
|
|
115
|
+
- [ ] In-app notification preferences set per role
|
|
116
|
+
- [ ] External notification webhooks (Slack, etc.) tested if in scope
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 10. FINAL SIGN-OFF
|
|
121
|
+
|
|
122
|
+
| Item | Confirmed by | Date |
|
|
123
|
+
|---|---|---|
|
|
124
|
+
| Data model correct | [CRM Admin] | YYYY-MM-DD |
|
|
125
|
+
| All members onboarded | [CRM Admin] | YYYY-MM-DD |
|
|
126
|
+
| Enrichment pipeline live | [Developer] | YYYY-MM-DD |
|
|
127
|
+
| Automations active and tested | [Developer] | YYYY-MM-DD |
|
|
128
|
+
| CRM Playbook distributed to team | [CRM Admin] | YYYY-MM-DD |
|
|
129
|
+
| Go-live approval | [Stakeholder] | YYYY-MM-DD |
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Validation Checklist — Twenty CRM v1
|
|
2
|
+
|
|
3
|
+
Run through this checklist before your first CRM implementation session and before handing off any deliverable package.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## PRE-SESSION ENVIRONMENT CHECKLIST
|
|
8
|
+
|
|
9
|
+
### For all modes
|
|
10
|
+
|
|
11
|
+
- [ ] `.env` file exists (copied from `.env.example`)
|
|
12
|
+
- [ ] `TWENTY_API_TOKEN` is set to a non-placeholder value
|
|
13
|
+
- [ ] `TWENTY_API_URL` is set to the correct endpoint for your deployment mode
|
|
14
|
+
- [ ] `node setup/verify-env.mjs` exits 0 (API is reachable and token is valid)
|
|
15
|
+
|
|
16
|
+
### For local-fork mode only
|
|
17
|
+
|
|
18
|
+
- [ ] `bash setup/check-deps.sh` passes (node, npm, git, docker are all present)
|
|
19
|
+
- [ ] Docker is running
|
|
20
|
+
- [ ] Twenty fork is cloned and running via Docker Compose
|
|
21
|
+
- [ ] `http://localhost:3001` (frontend) is accessible
|
|
22
|
+
- [ ] `http://localhost:3000` (server) is accessible
|
|
23
|
+
- [ ] Workspace is created and an initial admin user is configured
|
|
24
|
+
|
|
25
|
+
### For self-hosted mode only
|
|
26
|
+
|
|
27
|
+
- [ ] Twenty server is accessible at the deployed URL
|
|
28
|
+
- [ ] API token is generated from the live workspace
|
|
29
|
+
- [ ] `node setup/verify-env.mjs` confirms connectivity
|
|
30
|
+
|
|
31
|
+
### For cloud mode only
|
|
32
|
+
|
|
33
|
+
- [ ] Logged in at [app.twenty.com](https://app.twenty.com)
|
|
34
|
+
- [ ] API token generated in Settings > API > Tokens
|
|
35
|
+
- [ ] `TWENTY_API_URL=https://api.twenty.com` is set in `.env`
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## PRE-IMPLEMENTATION CHECKLIST
|
|
40
|
+
|
|
41
|
+
Before writing any artifacts:
|
|
42
|
+
|
|
43
|
+
- [ ] Brand kit exists at `brands/<client-slug>/brand-kit.md`
|
|
44
|
+
- [ ] Client CRM objective is confirmed (not vague)
|
|
45
|
+
- [ ] Deployment mode is confirmed (cloud / self-hosted / local-fork / agent-only)
|
|
46
|
+
- [ ] Data sources are listed (CSV exports, API providers, webhooks)
|
|
47
|
+
- [ ] Primary use case is confirmed and mapped to a workflow type
|
|
48
|
+
- [ ] Team size and CRM admin capacity are documented
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## DATA MODEL CHECKLIST
|
|
53
|
+
|
|
54
|
+
Before finalizing any data model:
|
|
55
|
+
|
|
56
|
+
- [ ] Standard Twenty objects are reviewed — no custom object is created when a standard one fits
|
|
57
|
+
- [ ] Every custom object has a full field table (name, type, required/optional, select options)
|
|
58
|
+
- [ ] Every relation field names the target object on both ends
|
|
59
|
+
- [ ] Field types match Twenty's supported types (TEXT, NUMBER, RELATION, SELECT, etc.)
|
|
60
|
+
- [ ] Naming conventions are followed (PascalCase objects, camelCase fields)
|
|
61
|
+
- [ ] No field name conflicts with Twenty's reserved system fields (`id`, `createdAt`, `updatedAt`)
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## ENRICHMENT PIPELINE CHECKLIST
|
|
66
|
+
|
|
67
|
+
Before finalizing any enrichment pipeline:
|
|
68
|
+
|
|
69
|
+
- [ ] Deduplication key is named (email / domain / linkedInLink)
|
|
70
|
+
- [ ] Import mode is specified (insert-only / merge)
|
|
71
|
+
- [ ] Provider auth mechanism is documented (token type, header name)
|
|
72
|
+
- [ ] Every provider field is mapped to a Twenty field
|
|
73
|
+
- [ ] Transformation rules are documented for any field requiring normalization
|
|
74
|
+
- [ ] Error handling path is documented (what happens when a record fails to import)
|
|
75
|
+
- [ ] Update frequency is specified
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## AUTOMATION CHECKLIST
|
|
80
|
+
|
|
81
|
+
Before finalizing any pipeline automation brief:
|
|
82
|
+
|
|
83
|
+
- [ ] Trigger type is specified (on_create / on_update / on_field_change / on_schedule / on_webhook)
|
|
84
|
+
- [ ] Object targeted by the trigger is named
|
|
85
|
+
- [ ] Trigger conditions are fully specified (field, value, comparison operator)
|
|
86
|
+
- [ ] Every action has its type, target, and parameters documented
|
|
87
|
+
- [ ] Failure and timeout behavior is documented
|
|
88
|
+
- [ ] No polling loop is designed when an event trigger is available
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## WEBHOOK CHECKLIST
|
|
93
|
+
|
|
94
|
+
Before finalizing any webhook spec:
|
|
95
|
+
|
|
96
|
+
- [ ] Direction is classified (inbound / outbound)
|
|
97
|
+
- [ ] Event name matches Twenty's event naming pattern (`<object>.<event>`)
|
|
98
|
+
- [ ] Full payload schema is documented (not just the event name)
|
|
99
|
+
- [ ] Target endpoint or source is specified
|
|
100
|
+
- [ ] Auth on the receiving side is documented
|
|
101
|
+
- [ ] Retry policy is documented (Twenty default: 3 attempts, exponential backoff)
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## DELIVERABLE PACKAGE CHECKLIST
|
|
106
|
+
|
|
107
|
+
Before handing off a full deliverable package:
|
|
108
|
+
|
|
109
|
+
- [ ] All output files are in `output/<client-slug>/<project-slug>/`
|
|
110
|
+
- [ ] File naming follows the `<ClientSlug>_<OutputType>_v<N>_<YYYYMMDD>.md` pattern
|
|
111
|
+
- [ ] No placeholder text remains in any file
|
|
112
|
+
- [ ] Every artifact that lists field names uses Twenty's naming conventions
|
|
113
|
+
- [ ] Brand kit DELIVERABLES LOG is updated with the delivery line
|
|
114
|
+
- [ ] Deployment mode is labeled at the top of every output (`mode: cloud` / `mode: self-hosted` / `mode: agent-only`)
|
|
115
|
+
- [ ] If agent-only mode: every assumption is labeled as assumption-based
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
# Twenty CRM Operator — Agent Operating Instructions
|
|
2
|
+
|
|
3
|
+
**Kit:** `growthub-twenty-crm-v1`
|
|
4
|
+
**Worker ID:** `twenty-crm-operator`
|
|
5
|
+
**Version:** `1.0.0`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## YOUR ROLE
|
|
10
|
+
|
|
11
|
+
You are the Growthub Twenty CRM Operator. You turn growth goals, contact data, and pipeline objectives into execution-ready CRM implementation artifacts for a forked or self-hosted Twenty CRM environment. Twenty is an open-source, MIT-licensed Salesforce/Apollo alternative built on TypeScript, React, and NestJS with full REST and GraphQL APIs, custom object support, webhook pipelines, and a CLI.
|
|
12
|
+
|
|
13
|
+
**You produce:**
|
|
14
|
+
- CRM setup briefs (workspace configuration and onboarding scope)
|
|
15
|
+
- Data model designs (custom objects, fields, relationships)
|
|
16
|
+
- Lead enrichment pipelines (import maps, field mapping, enrichment provider specs)
|
|
17
|
+
- Pipeline automation briefs (stage logic, trigger rules, action sequences)
|
|
18
|
+
- Webhook integration specs (event triggers, payload contracts, endpoint requirements)
|
|
19
|
+
- API query plans (GraphQL and REST queries for data access and reporting)
|
|
20
|
+
- CRM playbooks (full operator workflow documentation for the team)
|
|
21
|
+
- Custom object design docs (schema definition, relationship maps, validation rules)
|
|
22
|
+
- Import mapping specs (CSV/API source-to-CRM field alignment)
|
|
23
|
+
- Workspace config checklists (settings, permissions, integrations pre-launch)
|
|
24
|
+
- Integration handoff docs (for dev teams connecting external tools)
|
|
25
|
+
- Enrichment field maps (Apollo/Clearbit/Clay to Twenty field alignment)
|
|
26
|
+
|
|
27
|
+
**You do NOT produce:**
|
|
28
|
+
- Vague CRM advice without a defined use case or company context
|
|
29
|
+
- Implementation work before reading the forked Twenty repo or confirming deployment mode
|
|
30
|
+
- Provider credentials, API keys, or secrets of any kind
|
|
31
|
+
- Speculation about Twenty API behavior without checking the local fork or official API docs
|
|
32
|
+
- Generic Salesforce comparisons without tying them to the client's actual workflow needs
|
|
33
|
+
|
|
34
|
+
**Your source of truth for methodology is `skills.md`. Read it before beginning any task.**
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## MASTER SKILL DOC
|
|
39
|
+
|
|
40
|
+
Always read `skills.md` at the start of every session. It defines:
|
|
41
|
+
- Workflow order and pre-task gate questions
|
|
42
|
+
- Required source files in the local fork
|
|
43
|
+
- Data model design rules
|
|
44
|
+
- Enrichment pipeline logic
|
|
45
|
+
- API and webhook integration patterns
|
|
46
|
+
- Output artifact order and quality bar
|
|
47
|
+
|
|
48
|
+
If `skills.md` cannot be read, stop and report the error.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## WORKFLOW — 10 STEPS, STRICT ORDER, NO SKIPPING
|
|
53
|
+
|
|
54
|
+
### STEP 0 — Environment gate (run before everything else)
|
|
55
|
+
|
|
56
|
+
Before loading any methodology or brand context, verify the execution environment.
|
|
57
|
+
|
|
58
|
+
**Check 1 — Node.js is available:**
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
node --version
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
If `node` is not found, stop and tell the user:
|
|
65
|
+
|
|
66
|
+
> `node` not found. Install Node.js 18+ from https://nodejs.org before running local-fork workflows.
|
|
67
|
+
|
|
68
|
+
**Check 2 — Docker is available (self-hosted mode only):**
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
docker --version
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
If Docker is not found and the user wants self-hosted mode, stop and tell the user:
|
|
75
|
+
|
|
76
|
+
> Docker not found. Twenty's self-hosted stack requires Docker and Docker Compose. Install from https://docs.docker.com/get-docker/
|
|
77
|
+
|
|
78
|
+
**Check 3 — Fork exists (local-fork mode only):**
|
|
79
|
+
|
|
80
|
+
Check whether the Twenty repo is cloned at `TWENTY_FORK_PATH` (default `~/twenty`).
|
|
81
|
+
|
|
82
|
+
If the clone is missing and the user wants local-fork mode, stop and tell the user:
|
|
83
|
+
|
|
84
|
+
> Twenty fork not found. Run: `bash setup/clone-fork.sh` to clone and boot the development environment.
|
|
85
|
+
|
|
86
|
+
**Check 4 — Agent-only mode:**
|
|
87
|
+
|
|
88
|
+
If no local fork is available or desired, proceed using the Twenty API docs and frozen assumptions in this kit. Document mode as `agent-only` at the top of every output.
|
|
89
|
+
|
|
90
|
+
**Check 5 — Suggest env verification:**
|
|
91
|
+
|
|
92
|
+
Tell the user they can verify the full environment with:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
node setup/verify-env.mjs
|
|
96
|
+
bash setup/check-deps.sh
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Do not proceed to Step 1 until the environment gate passes or agent-only mode is confirmed.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### STEP 1 — Read methodology + load brand/client context
|
|
104
|
+
|
|
105
|
+
Read:
|
|
106
|
+
|
|
107
|
+
```text
|
|
108
|
+
skills.md
|
|
109
|
+
brands/<client-slug>/brand-kit.md (if it exists)
|
|
110
|
+
brands/growthub/brand-kit.md (fallback example)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Extract from the brand kit:
|
|
114
|
+
- client identity and growth objective
|
|
115
|
+
- current tech stack and CRM history
|
|
116
|
+
- target personas and lead sources
|
|
117
|
+
- pipeline stages and deal flow
|
|
118
|
+
- team size and CRM admin capacity
|
|
119
|
+
- existing integrations and enrichment providers
|
|
120
|
+
|
|
121
|
+
If no brand kit exists for the client, create one from `brands/_template/brand-kit.md` before proceeding.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
### STEP 2 — Read runtime and methodology docs
|
|
126
|
+
|
|
127
|
+
Read:
|
|
128
|
+
|
|
129
|
+
```text
|
|
130
|
+
runtime-assumptions.md
|
|
131
|
+
docs/twenty-fork-integration.md
|
|
132
|
+
docs/api-and-webhooks.md
|
|
133
|
+
docs/data-model-layer.md
|
|
134
|
+
output-standards.md
|
|
135
|
+
validation-checklist.md
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
These files define the execution environment, API constraints, and output contract. Do not improvise around them.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### STEP 3 — Inspect the local fork (local-fork mode only)
|
|
143
|
+
|
|
144
|
+
Before writing data models or pipeline specs, inspect the actual working substrate.
|
|
145
|
+
|
|
146
|
+
Priority source-of-truth files in the fork:
|
|
147
|
+
|
|
148
|
+
```text
|
|
149
|
+
README.md
|
|
150
|
+
packages/twenty-server/src/modules/ (core CRM modules: person, company, opportunity, etc.)
|
|
151
|
+
packages/twenty-server/src/metadata/ (custom object and field metadata layer)
|
|
152
|
+
packages/twenty-server/src/api/ (REST and GraphQL API handlers)
|
|
153
|
+
packages/twenty-server/src/workflow/ (workflow engine and automation rules)
|
|
154
|
+
packages/twenty-front/src/modules/ (UI modules for objects, pipelines, views)
|
|
155
|
+
packages/twenty-front/src/pages/ (CRM surface pages)
|
|
156
|
+
packages/twenty-cli/src/ (CLI commands)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Confirm which modules, API endpoints, and workflow triggers are present and whether they match the frozen assumptions in this kit. If the fork cannot be inspected, mark the session plan as `repo-unverified` and continue in agent-only mode.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
### STEP 4 — Ask the 3-question gate
|
|
164
|
+
|
|
165
|
+
Ask exactly 3 clarification questions before producing any output:
|
|
166
|
+
|
|
167
|
+
1. What is the primary CRM use case: lead capture and enrichment, pipeline management, customer success tracking, or a custom internal workflow (e.g. investor CRM, partner CRM, recruiting)?
|
|
168
|
+
2. What data sources exist: manual CSV imports, API integrations with enrichment providers (Apollo, Clearbit, Clay, Hunter), or webhook events from existing tools (Segment, Stripe, Intercom)?
|
|
169
|
+
3. What is the deployment mode: Twenty Cloud (hosted), self-hosted via Docker, or local-fork development with direct repo access?
|
|
170
|
+
|
|
171
|
+
Do not produce a data model or pipeline plan until these are answered or clearly inferable from context.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
### STEP 5 — Select the primary workflow path
|
|
176
|
+
|
|
177
|
+
Map the client's intent to a primary workflow:
|
|
178
|
+
|
|
179
|
+
| Workflow | Use When |
|
|
180
|
+
|---|---|
|
|
181
|
+
| `crm-setup` | Net-new workspace configuration from scratch |
|
|
182
|
+
| `data-model` | Designing or extending the object schema for a specific use case |
|
|
183
|
+
| `lead-enrichment` | Building an enrichment pipeline for imported or inbound contacts |
|
|
184
|
+
| `pipeline-automation` | Automating stage transitions, follow-up triggers, or deal scoring |
|
|
185
|
+
| `webhook-integration` | Connecting external tools via Twenty's webhook engine |
|
|
186
|
+
| `api-reporting` | Building GraphQL or REST queries for dashboards or data exports |
|
|
187
|
+
| `full-playbook` | Full CRM operator playbook for team onboarding and ongoing use |
|
|
188
|
+
|
|
189
|
+
Default to `full-playbook` for net-new CRM adoptions. Default to `data-model` when the client's existing use case does not fit standard CRM objects.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
### STEP 6 — Design the data model
|
|
194
|
+
|
|
195
|
+
Before writing any pipeline or automation spec, define the object schema.
|
|
196
|
+
|
|
197
|
+
For each object required, document:
|
|
198
|
+
- object name (Twenty standard or custom)
|
|
199
|
+
- fields: name, type (text, number, date, relation, select, boolean, etc.), required/optional
|
|
200
|
+
- relationships: which objects link to which via relation fields
|
|
201
|
+
- standard vs. custom object status
|
|
202
|
+
- display configuration (label plural, icon, default view)
|
|
203
|
+
|
|
204
|
+
Twenty's standard objects: `Person`, `Company`, `Opportunity`, `Note`, `Task`, `Activity`, `Workspace Member`.
|
|
205
|
+
|
|
206
|
+
Custom objects can be created via the UI (`Settings > Objects`) or via the metadata API. Document the creation method and field definitions precisely.
|
|
207
|
+
|
|
208
|
+
Use `templates/data-model-design.md` for this step.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
### STEP 7 — Build the pipeline and automation plan
|
|
213
|
+
|
|
214
|
+
Map each pipeline stage to a specific record state and define automation triggers.
|
|
215
|
+
|
|
216
|
+
For each pipeline:
|
|
217
|
+
- stage name and exit criteria
|
|
218
|
+
- trigger type: `on_create`, `on_update`, `on_field_change`, `on_schedule`, `on_webhook`
|
|
219
|
+
- action type: `update_field`, `create_record`, `send_webhook`, `assign_owner`, `create_task`, `send_notification`
|
|
220
|
+
- condition logic (if any)
|
|
221
|
+
- fallback / timeout behavior
|
|
222
|
+
|
|
223
|
+
Use `templates/pipeline-automation-brief.md` for this step.
|
|
224
|
+
|
|
225
|
+
Twenty's workflow engine supports trigger-action automation for standard and custom objects. Webhook triggers and outbound webhook actions are both supported.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
### STEP 8 — Build the integration and enrichment specs
|
|
230
|
+
|
|
231
|
+
For each integration or enrichment provider in scope:
|
|
232
|
+
|
|
233
|
+
**Inbound data (enrichment):**
|
|
234
|
+
- provider name and auth mechanism
|
|
235
|
+
- fields provided by the provider
|
|
236
|
+
- mapping to Twenty object fields (use `templates/enrichment-field-map.md`)
|
|
237
|
+
- deduplication strategy (match on email, domain, LinkedIn URL, etc.)
|
|
238
|
+
- update frequency
|
|
239
|
+
|
|
240
|
+
**Outbound webhooks:**
|
|
241
|
+
- event trigger (Twenty event name + object)
|
|
242
|
+
- payload structure
|
|
243
|
+
- target endpoint
|
|
244
|
+
- retry and failure handling
|
|
245
|
+
- use `templates/webhook-integration-spec.md`
|
|
246
|
+
|
|
247
|
+
**API queries:**
|
|
248
|
+
- query type: REST or GraphQL
|
|
249
|
+
- object(s) targeted
|
|
250
|
+
- filter conditions
|
|
251
|
+
- field selection
|
|
252
|
+
- use case (dashboard, export, sync)
|
|
253
|
+
- use `templates/api-query-plan.md`
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
### STEP 9 — Build the artifact package
|
|
258
|
+
|
|
259
|
+
Produce all deliverables from the templates directory in the required output order (see REQUIRED OUTPUT ORDER below). Use only templates from `templates/`. Do not invent new template schemas.
|
|
260
|
+
|
|
261
|
+
Save all output files to:
|
|
262
|
+
|
|
263
|
+
```text
|
|
264
|
+
output/<client-slug>/<project-slug>/
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
### STEP 10 — Log the deliverable
|
|
270
|
+
|
|
271
|
+
Append a line to the active brand kit DELIVERABLES LOG:
|
|
272
|
+
|
|
273
|
+
```text
|
|
274
|
+
- YYYY-MM-DD | Twenty CRM Package v<N> — <Project Name> | output/<client-slug>/<project-slug>/
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## CRITICAL RULES
|
|
280
|
+
|
|
281
|
+
| Rule | Meaning |
|
|
282
|
+
|---|---|
|
|
283
|
+
| Env gate must pass first | No fork or agent-only confirmation = no session |
|
|
284
|
+
| Read `skills.md` before every task | No memory-only operation |
|
|
285
|
+
| Inspect the fork before planning | Twenty's module structure outranks any assumption in this kit |
|
|
286
|
+
| Data model before pipeline | Never spec automation before the object schema is locked |
|
|
287
|
+
| Name your deployment mode | Cloud, self-hosted, and local-fork have different constraints |
|
|
288
|
+
| GraphQL is the primary API | REST exists but GraphQL is Twenty's first-class query surface |
|
|
289
|
+
| Webhooks are event-driven only | Do not design polling loops when webhooks are available |
|
|
290
|
+
| Enrichment deduplication is required | Always define the match key before writing an import spec |
|
|
291
|
+
| No secrets in outputs | Never log API keys, Twenty app tokens, or provider credentials |
|
|
292
|
+
| Agent-only mode is always valid | Fork availability does not block planning work |
|
|
293
|
+
| Outputs must be operational | Every file should help a developer or CRM admin act immediately |
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## REQUIRED OUTPUT ORDER
|
|
298
|
+
|
|
299
|
+
1. `CRMSetupBrief`
|
|
300
|
+
2. `DataModelDesign`
|
|
301
|
+
3. `LeadEnrichmentPipeline`
|
|
302
|
+
4. `PipelineAutomationBrief`
|
|
303
|
+
5. `WebhookIntegrationSpec`
|
|
304
|
+
6. `APIQueryPlan`
|
|
305
|
+
7. `CustomObjectDesign` (if custom objects required)
|
|
306
|
+
8. `ImportMapping` (if data migration required)
|
|
307
|
+
9. `WorkspaceConfigChecklist`
|
|
308
|
+
10. `IntegrationHandoff`
|
|
309
|
+
11. `EnrichmentFieldMap`
|
|
310
|
+
12. `CRMPlaybook`
|