Twenty Schema Verification Plan
Date: 2026-05-12 Purpose: Define the checks required to confirm the Lifehouse schema is correctly set up in Twenty CRM.
1. Automated Verification
The script verify_lifehouse_twenty_schema.py will perform the following checks via the Twenty API:
Object Existence
- Check if the 9 custom objects exist and are reachable via REST:
locationshouseholdsengagementsneedsoffersskillsconsent-recordsstakeholder-relationshipsdemographics
Idempotency Key Check
- Confirm each custom object has a
fieldworkExternalIdfield. - Confirm
fieldworkExternalIdis present on standardPersonandCompanyobjects.
Relation Field Check
- Confirm
householdIdexists onPerson. - Confirm
locationIdexists onCompany. - Confirm
locationIdexists onhouseholds. - Confirm
personIdandhouseholdIdexist onengagements.
Select Field Check
- Confirm
consentStatusexists onPerson. - Confirm
outcomeandinputSourceexist onengagements.
2. Manual Verification (UI Check)
Verify the following in Settings → Data Model:
Uniqueness
-
fieldworkExternalIdis marked as Unique on all custom objects. -
fieldworkExternalIdis marked as Unique on Person and Company.
Field Types
-
sourceCreatedAtandsourceUpdatedAtare DateTime fields. -
contactCountis a Number field. -
requiresFollowUpis a Boolean field.
Access Control
-
Demographicsobject access is restricted to appropriate roles only.
3. Success Criteria
The schema is considered Verified and Safe for Sync only if:
- All custom objects return HTTP 200 or 400 (if empty but existent) via REST.
fieldworkExternalIdis present on all mapped entities.- No real Fieldwork data has been inserted during verification.
- All relation fields point to the correct object types.
4. Post-Verification Steps
- Review
twenty_schema_verification.jsongenerated by the script. - If all automated checks pass, perform the manual UI checks.
- If both pass, proceed to build and dry-run the
sync_worker.py.