@stigg/bulk-import
v1.9.1
Published
CLI tool to bulk import customers to Stigg
Downloads
6
Maintainers
Keywords
Readme
Bulk import customers to Stigg
After creating your product catalog in Stigg, you can import your existing customers into Stigg.
This tool will 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
Prepare 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 an existing customer in Stripe
"paymentMethodId": "pm_1N04AHEdaKWoSZ0OgP78RflV", // required for paid customers
"updatedAt": "2022-01-01T00:00:00.000Z", // optional - indicates the last update of the customer. In case there's already existing customer that was updated after that date, it will skip import this customer
"metadata": {
// optional - set metadata for the customer
"isTest": "true",
},
},
// ...
],
}
Import subscriptions
Create a file subscriptions.json
that contains all the subscriptions.
{
"subscriptions": [
{
"customerId": "lorem-ipsum",
"planId": "plan-1",
"resourceId": "site-1", // optional - required for multiple subscriptions product
"billingPeriod": "MONTHLY", // optional - required for paid plan
"startDate": "2022-01-01T00:00:00.000Z", // optional - used for backdating
"endDate": "2022-01-01T00:00:00.000Z", // optional - end date for the subscription
"updatedAt": "2022-01-01T00:00:00.000Z", // optional - indicates the last update of the subscription. In case there's already existing subscription that was updated after that date, it will skip import this subscription
"unitQuantity": 5, // optional - required for per-unit paid plan (single chargeable feature)
"billableFeatures": [ // optional - required for per-unit paid plan (multiple chargeable features)
{ "featureId": "feature-seats", "quantity": 5 },
{ "featureId": "feature-projects", "quantity": 25 },
],
"addons": [ // optional - set subscription addons
{ "addonId": "addon-1", "quantity": 6 },
{ "addonId": "addon-2", "quantity": 3 },
],
"metadata": { // optional - set metadata for the subscription
"isTest": "true"
}
},
// ...
]
}
Import feature usage
Create a file usage.json
that contains all the features' up-to-date usage.
{
"usages": [
{
"customerId": "lorem-ipsum",
"resourceId": "site-1", // optional - required for multiple subscriptions product
"featureId": "feature-seats",
"usage": 5
}
// ...
]
}
Execute bulk import
- Obtain Server API key from https://app.stigg.io/account/settings
- 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.
- At the end of the process a summary will be displayed.