This page will help you get started with Penbox.

Penbox is a SaaS platform enabling you to create your digital interactions. It will allow you to (non-exhaustive list):

  • Build your own intelligent form
  • Configure invite scenario and notifications
  • Capture information and documents in a structured way from your users
  • Import and export captured info & docs in external systems (eg: customer CRM,...)
  • Capture e-signatures
  • ...

Concepts & entities

In this training, you will manipulate the following entities within Penbox:

The Flow will be the entities that we will manipulate the most. It is within this entity that we will define the configuration of the digital interaction.

The Flow customisation is a link between the flow and the Company. It allows to easily manage the versioning of the flows.

  • When creating a new Request, Penbox will use the last published flow as version upon which to base the business logic of the request
  • When editing a new version of a Flow, you won't need to think about the retro-compatibility of the existing request & response data of the existing requests with the new version. Each request will stay linked to the Flow version when it was created. And this, independently of the current Flow version linked with the Flow customisation

When a pen-user will use the UI to generate a Request. The request will contain data related to the end-user as well as data used to pre-fill and scenario configuration.

The end-user will have access and fill a Response, linked to the Request.

Entities storage

All entities can be GET and POST viaour public API.

The key point related to this is that all information for all entities can be accessed or edited using a single JSON payload.


As explained, the main entity that we will manipulate during this training are flows. As a consequence, we will review here the basic structure of a flow.

  "id": "uuid",
  "attributes": {
    "version": x,
    "slug": "xxx",
    "variables": [],
    "steps": []
  "meta": {
  • version: each flow has a version
  • slug: each flow as a slug. Together with the version, they create a unique identifier at company level
  • variables: it's possible to define global variables which can be used through the whole flow via the variables attributes. Otherwise we can define scoped variable. Thanks to the pen-script, it is possible to build complex variables, functions and modules (more on this in more advanced guides).
  • steps: the steps displayed in the form to the end-user are configured in this section
  • meta: this key is used to configure Penbox micro-services or advanced configuration in the form, such as the configuration of request with scenarios/notifications

The creation, editing and publication of flows is done via the Studio in pen-app:


An important part of building digital interactions with Penbox is using the pen-script, leveraging the power of JSON expression (proprietary technology of Penbox).

Pen-script allows to access the power of coding while staying at the reach of [advanced] business users and with an increased level of security.

Example of pen-script:

Let's take those variables as example:

  "foo": true,
  "bar": "James"

If we evaluate those variable using pen-script:

  "eval1": {
    ":if": "{foo}",
    ":then": "It is foo",
    ":else": "Foo is false"
  "eval2": "Hello {bar}"

Will evaluate to those values:

  "eval1": "It is foo",
  "eval2": "Hello James"