Importing existing customers and subscriptions into Stigg in bulk
Motivation
In case you integrate with Stigg while having existing customer base, you might want to import your existing customers into Stigg.
We prepared a CLI tool that manage the import process:
- It reads the list of customers to import from a JSON file.
- It's idempotent - feel safe to re-run it.
Usage
Prerequisites
- NodeJS must be installed
Preparing the input JSON files
The CLI support import data of customers, subscriptions and feature usage into Stigg.
Import customers
Create a file customers.json
that contains all the customers.
The file should be in the following schema:
{
"customers": [
{
"customerId": "lorem-ipsum",
"email": "[email protected]", // optional
"name": "Lorem-ipsum", // optional
"billingId": "cus_MvdQq1bVD1BQHe", // optional - if the customer already exists in the billing solution
"paymentMethodId": "pm_1N04AHEdaKWoSZ0OgP78RflV", // required for paid customers
"metadata": { // optional - set metadata for the customer
"isTest": "true"
}
},
// ...
],
}
Import subscriptions
Create a file subscriptions.json
that contains all the subscriptions.
The file should be in the following schema:
"subscriptions": [
{
"customerId": "lorem-ipsum",
"planId": "plan-local-env-p-1",
"resourceId": "site-1", // optional - required for multiple subscriptions product
"billingPeriod": "MONTHLY", // optional - required for paid plan
"unitQuantity": 5, // optional - required for per-unit paid plan
"startDate": "2022-01-01T00:00:00.000Z", // optional - used for backdating
"metadata": { // optional - set metadata for the subscription
"isTest": "true"
}
},
// ...
],
Import feature usage
Create a file usage.json
that contains all the features usage.
The file should be in the following schema:
"usages": [
{
"customerId": "lorem-ipsum",
"resourceId": "site-1", // optional - required for multiple subscriptions product
"featureId": "feature-seats",
"usage": 5
},
// ...
]
Initiating the bulk import process
Obtain a Server API key from the Stigg Console.
Export it as environment variable:
export STIGG_SERVER_API_KEY='<SERVER-API-KEY>'
Initiate the bulk import process (you can either import all at once or do it separately):
npx @stigg/bulk-import --customers-file customers.json --subscriptions-file subscriptions.json --usage-file usage.json
During the import process there will be a progress bar.
When the import process is complete a summary will be displayed.
Updated 10 months ago