d85785e380
App to manage telemetry/billing (twenty for twenty!)
Stripe synchronizer
Synchronizes customers from Stripe to Twenty
Requirements
- twenty-cli
npm install -g twenty-cli - an
apiKey. Go tohttps://twenty.com/settings/api-webhooksto generate one - Stripe secret API key - available in Stripe workbench
Setup
- Synchronize app
twenty auth login
cd stripe-synchronizer
twenty app sync
- Go to Stripe > Workbench > Webhooks and add webhook:
- events: customer.subscription.created and customer.subscription.updated
- webhook endpoint
- destination:
{TWENTY_URL}/s/webhook/stripe, e.g. https://workspace.twenty.com/s/webhook/stripe
- Go to Twenty > Settings > Integrations > Stripe synchronizer > Settings and add values
Flow
- Retrieve Stripe webhook
- Check if it's either subscription created or updated, if not, exit
- Read customer ID, sub status and quantity from webhook
- Read customer data from Stripe API, if business name is empty, exit
- Check if customer company exists in Twenty, if not, create it
- Check if related person exists in Twenty, if not, create it and link to company
Notes
- app synchronizes only new customers, those created before start of app won't be synchronized unless they're updated
- customers will be added to Twenty People object only if their name and email are filled with data, otherwise app will throw an error
Todo
- add validation of signature key from Stripe to ensure that incoming request is valid (possible once request headers are exposed to serverless functions)