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

Preparing the input JSON file

Create a file input.json that contains all the customers that should be imported into Stigg.

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 exists in a billing solution that's integrated with Stigg (for example: Stripe)
      "subscription": {  
        "planId": "plan-local-env-p-1",  
        "billingPeriod": "MONTHLY", // optional - requried for paid plan  
        "unitQuantity": 5, // optional - required for per-unit paid plan  
        "startDate": "2022-01-01T00:00:00.000Z" // optional - used for backdating  
      },  
      "featuresUsage": { // optional - set usage for features  
        "feature-seats": 9 // key is feature id, value is the current usage  
      },
      "metadata": { // optional - set metadata for the customer
        "isTest": "true"
      }
    }  
    // ...  
  ]  
}

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:

npx @stigg/bulk-import --input-file input.json

During the import process there will be a progress bar.

When the import process is complete a summary will be displayed.