Skip to content

Fulfillment Automation

This quickstart tutorial demonstrates how to create a Fulfillment Automation extension project by using the CloudBlue Connect CLI.


Make sure that the following prerequisites are met:

  • Python (3.8, 3.9 or 3.10) is installed
  • Docker is installed
  • The latest release of Poetry is installed
  • Latest release of Connect CLI is installed
  • A CloudBlue Connect vendor account is created

Prepare your vendor account

First, it is required to generate an API token and add your vendor account via the CLI tool

Create a new token by using the Connect interface:

  1. Navigate to Integrations -> Tokens.
  2. Click the + Create Token button.
  3. Proivde a name, description and an optional external id for your token.
  4. Next, choose Custom Integration from the extension list.
  5. Select required permissions for your token, at least the DevOps option should be selected.
  6. On the summary screen, click Go To Details to access your token details.
  7. Click the button to copy your token.

Next, open your terminal and run:

$ ccli account add "<your copied token>"

Note that <your copied token> must be replaced with your generated API token.

Create an extension in DevOps

Use the DevOps module on Connect to create a Fullfilment Automation extension:

1) Click on the + Add Extension button to start configuring a new extension object.

DevOps main

2) Provide your extension name, choose at least one product and then click Create.

DevOps add extension

3) Click the Open button to access the details page of your created extension.

DevOps extensions

4) Locate the Local Access widget and click on the button to copy your environment ID.

DevOps details

Run Extension Project Bootstrap wizard

The CLI tool provides a wizard to bootstrap your extension project.

Use the following command to launch this wizard:

$ ccli project extension bootstrap

The wizard provides the welcome screen and the following options to configure your extension:

Wizard welcome

Name your extension

Wizard project name

Your provided extension name will be used for packaging metadata.

Project root folder name

Wizard project root

The root folder with all required files will be created once all operations with the wizard are completed.

Describe your extension

Wizard project description

Your provided description will be used to generate a readme file and for packaging metadata.

Set initial version number

Wizard project version

Your provided version is used for packaging metadata.

Provide the author name

Wizard project author

Your provided author name will be used for packaging metadata and to add a copyright header in each generated file.

Choose python package name

Wizard project package

Select a package name for your extension. It must be a valid python identifier (e.g., connect_ext).

Synchronous or asynchronous programming

In case you are familiar with python asyncio programming, select yes in the following step:

Wizard project asyncio

Github actions

If you plan to host your git repository on and you want to automate the continuous integration of your project, select yes in the following step and an actions workflow file will be created for you:

Wizard project github

Api Hostname

The wizard will propose to use a hostname of the Connect production environment by default:

Wizard project host

Api Key

The wizard will propose to use the same Api Key that is configured for your vendor account:

Wizard project ApiKey

Environment ID

Use your copied environment ID value from the Local Access widget of the details screen:

Wizard project environment

Extension type

Select Fulfillment Automation for this scenario:

Wizard extension type

Extension features

Choose Events Processing to generate an Events Application class:

Wizard extension features

Event categories

Select categories of events you want to handle:

Wizard extension events categories

Background events

Choose your required background events:

Wizard extension background

Interactive events

Choose interactive events you are interested in:

Wizard extension interactive

Environment variables

In case your extension should use environment variables, choose yes to generate example environment variables:

Wizard extension variables


As a result, the wizard will provide a summary with your selected options:

Wizard summary

Select Create and press Enter to generate your extension project.

Run your extension locally

In order to run your extension locally, it is required to build a docker image for your extension.

Go to your generated project folder and run:

$ docker compose build

Thereafter, use the following command to execute your extension:

$ docker compose up <your_extension_slug>_dev


Go to your extension details page via the Connect UI DevOps module and click the button to see your extension up and running!