Using a JSON Template

Introduction

Actito gives access to JSON files templates which allow you to directly create frequently used Custom Tables.

These templates can be used to directly create tables with their predefined attributes.

To create a table based on a template, click on 'Create a table' in the 'Manage table structure' app. Choose your template and click on Next.

images/download/attachments/615293188/image2022-4-12_11-17-18.png

Define the parameters of your table:

  • Choose the name of the table (by default, it takes the name of the template) and the entity on which it is stored.

  • For templates of Linked Data and Interaction tables, you must link your custom table to a Profile Database.

    • After selecting your DB, you can choose the Profile key. It is the link between your new custom table and the profile DB.

    • By default, it is the technical profileId, but you can choose any key attribute of your profile DB.

Click on 'Create' to finalize your table.

images/download/attachments/615293188/image2022-4-12_11-16-7.png

The templates can also be used as examples, to be modified to meet needs specific to your activity.

For any file modification, find the relevant JSON file below and add, remove or update fields according yo your own use case. Make sure to respect the constraints explained on 'Structuring your JSON Definition File'.

You can download the JSON file of any existing table by clicking on the 'More' button, then 'Download table definition'.

However, some technical fields are automatically created by Actito, such as the id, the creation or update moments. These fields cannot be included when you upload a new file.

For this reason, it is easier to use the files provided below rather than download the definition of an existing table.

Templates for Interaction Custom Tables

The Interaction type of table enables you to store one-off data that are recorded when a profile interacts with your activity.

'Event' table

You can create an 'Event' table, to store information related to the participation of a profile to an event. Depending on your activity, the notion of event can fit several definitions:

  • A concert

  • A charity dinner

  • A conference

  • A fair

  • A trip

  • ...

Slight adaptations of the definition file allow you to match your own business definition of an event.

In Actito, you can use this information to:

  • You can refer to the event data in the customization of an e-mail, for example to confirm a registration, give the address and the time of the event,...

  • You can condition an e-mail depending on whether a profile effectively took part in the event

  • Thanks to the "EventGeneratedTable" capability, an event will be registered in Actito for each line creation, which allows to trigger a scenario as soon as a profile registers to an event, or a few days after the event took place,...

The following attributes are predefined for the 'Event' template:

  • The start and end moment of the event

  • The registration date to the event

  • The location of the event

  • The name of the event

  • The registration code

  • The participation status

  • The type of ticket

  • The ticket price

  • The event id

  • The id of the profile taking part in the event, which is used as link with the profile table. It can be the technical profileId or any key of your profile database.

Download the JSON definition file template for a 'Event' table: Event_EN.json

Event_EN
{
"userName": "Event",
"technicalName": "Event",
"businessKey": "EventId",
"autoGeneratedBusinessKey": false,
"description": null,
"creationTimeColumn": null,
"entityName": "entityName",
"prettyNameExpression": null,
"layout": {
"list": null,
"details": null
},
"emails": [],
"capabilityDTOs": [
{
"name": "Interaction"
},
{
"name": "EventGeneratedTable"
}
],
"defaultFetchingParameters": [],
"links": [
{
"objectType": "PROFILE_LINK",
"linkName": "Event participation",
"constraintType": "onDeleteCascade",
"sourceFieldName": "profileId",
"targetFieldName": "profileId",
"targetedEntityName": "entityName",
"targetedProfileTableName": "tableName"
}
],
"tableEventDefinitions": [
{
"technicalName": "create",
"userName": "New",
"tableEventConditionDefinitions": [
{
"updatedProperties": [],
"type": "CREATE",
"beforePredicate": null,
"afterPredicate": null
}
]
},
{
"technicalName": "update",
"userName": "Updated",
"tableEventConditionDefinitions": [
{
"updatedProperties": [
"Participated"
],
"type": "UPDATE",
"beforePredicate": {
"type": "S",
"names": [
"profileId"
],
"operator": [
"U",
"isKnown"
]
},
"afterPredicate": {
"type": "S",
"names": [
"profileId"
],
"operator": [
"U",
"isKnown"
]
}
}
]
}
],
"fields": [
{
"objectType": "SIMPLE",
"fieldName": "startMoment",
"columnName": "startMoment",
"userName": "Start Moment",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "TIMESTAMP",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "endMoment",
"columnName": "endMoment",
"userName": "End Moment",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "TIMESTAMP",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "subscriptionDate",
"columnName": "subscriptionDate",
"userName": "Subscription Date",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "DATE",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "EventPlace",
"columnName": "EventPlace",
"userName": "EventPlace",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "EventName",
"columnName": "EventName",
"userName": "EventName",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "SubscriptionCode",
"columnName": "SubscriptionCode",
"userName": "SubscriptionCode",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "LONG",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "status",
"columnName": "status",
"userName": "Status",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": null,
"type": "STRING",
"possibleValues": [
"Subscribe",
"Paid",
"Participated",
"DidNotParticipated",
"Cancelled"],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 20
}
},
{
"objectType": "SIMPLE",
"fieldName": "ticketType",
"columnName": "ticketType",
"userName": "Ticket Type",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 20
}
},
{
"objectType": "SIMPLE",
"fieldName": "price",
"columnName": "price",
"userName": "Price",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "",
"type": "INTEGER",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "EventId",
"columnName": "EventId",
"userName": "EventId",
"required": true,
"unique": true,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "",
"type": "LONG",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "profileId",
"columnName": "profileId",
"userName": "profile Id",
"required": true,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": null,
"type": "LONG",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
}
],
"rowCleaning": {
"cleanPredicate": null,
"fifoLimit": null,
"softLimit": false,
"hardLimit": false
},
"entityId": 11
}

'Simple order' table

You can create an 'Order' table, to store information related to orders made by your profiles. Depending on your activity, the notion of order can fit several definitions:

  • A purchase

  • An order (Goods, Catalogue, Tickets, etc.)

  • ...

Slight adaptations of the definition file allow you to match your own business definition of an order.

The template is labelled "simple" orders because it stores all the product references at once, without details for each item.

More complex models are possible, by linking an 'Order' and an 'Order lines' table.

For these richer models, see the Multi-table templates or discuss a tailor-made data model with your Actito contact person.

In Actito, you can use this information to:

  • You can refer to the order data in the customization of an e-mail, for example to confirm a purchase, giving the details of the order.

  • You can condition an e-mail depending on the orders a profile made.

  • Thanks to the "EventGeneratedTable" capability, an event will be registered in Actito for each line creation, which allows to trigger a scenario as soon as a profile confirms an order, or a few days after the order took place,...

  • You can create segmentations based on orders data such as in/active customers or amount spent.

  • You can target profiles based on orders data. Ex: target profiles depending on their order date or amount spent.

The following attributes are predefined for the 'Order' template:

  • The order id

  • The order date

  • Products reference (SKU)

  • Products quantity

  • Products price

  • The total amount of the order

  • The total amount related to articles

  • The total amount not related to articles (ex: shipping)

  • The total number of products in the order

  • The total number of unique products in the order

  • The reference of the order

  • The payment method

  • The voucher code

  • The currency

  • The shipping type

  • The order shipping status

  • The store id where the order was done

  • The loyalty points for the order

  • The id of the profile, which is used as link with the profile table. It can be the technical profileId or any key of your profile database.

Download the JSON definition file template for a 'Simpler order' table: simpleOrdersEN.json

Simple_order_EN.json
{
"userName": "Simple Orders",
"technicalName": "simpleOrders",
"businessKey": "orderID",
"autoGeneratedBusinessKey": false,
"description": null,
"creationTimeColumn": "orderDate",
"entityName": "{{entityName}}",
"prettyNameExpression": null,
"layout": {
"list": null,
"details": null
},
"emails": [],
"capabilityDTOs": [
{
"name": "Interaction"
},
{
"name": "EventGeneratedTable"
}
],
"defaultFetchingParameters": [],
"links": [
{
"objectType": "PROFILE_LINK",
"linkName": "profile-orders",
"constraintType": "onDeleteCascade",
"sourceFieldName": "{{profileKeyAttribute}}",
"targetFieldName": "{{profileKeyAttribute}}",
"targetedEntityName": "{{entityName}}",
"targetedProfileTableName": "{{tableName}}"
}
],
"tableEventDefinitions": [
{
"technicalName": "create",
"userName": "New order",
"tableEventConditionDefinitions": [
{
"updatedProperties": [],
"type": "CREATE",
"beforePredicate": null,
"afterPredicate": null
}
]
}
],
"fields": [
{
"objectType": "SIMPLE",
"fieldName": "date",
"columnName": "date",
"userName": "Date",
"required": false,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "Date of the order",
"type": "TIMESTAMP",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "productName",
"columnName": "productName",
"userName": "Product Name",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The name of the product ordered",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "productDescription",
"columnName": "productDescription",
"userName": "Product descritpion",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The description of the product ordered",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "totalAmount",
"columnName": "totalAmount",
"userName": "Total Amount",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "Total amount of the order",
"type": "NUMBER",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "productUnitPrice",
"columnName": "productUnitPrice",
"userName": "Product Unit Price",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "Total amount of the order",
"type": "NUMBER",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "productQuantity",
"columnName": "productQuantity",
"userName": "Product quantity",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "Quantity of articles ordered",
"type": "LONG",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "paymentMethod",
"columnName": "paymentMethod",
"userName": "Payment Method",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The payment method used to pay the order",
"type": "STRING",
"possibleValues": null,
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "currency",
"columnName": "currency",
"userName": "Currency",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The currency.",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "shippingMode",
"columnName": "shippingMode",
"userName": "Shipping Mode",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The shipping of the order.",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "shippingAmount",
"columnName": "shippingAmount",
"userName": "Shipping amount",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The amount of the shipping",
"type": "NUMBER",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "status",
"columnName": "status",
"userName": "Status",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The status of the order.",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "storeName",
"columnName": "storeName",
"userName": "Store name",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The name of the store where the order was made",
"type": "String",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "orderID",
"columnName": "orderID",
"userName": "Order ID",
"required": true,
"unique": true,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "The ID of the order",
"type": "String",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "{{profileKeyAttribute}}",
"columnName": "{{profileKeyAttribute}}",
"userName": "{{profileKeyAttribute}}",
"required": true,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "The reconciliation key with the profile table.",
"type": "{{profileKeyAttributeDataType}}",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
}
],
"rowCleaning": {
"cleanPredicate": null,
"fifoLimit": null,
"softLimit": false,
"hardLimit": false
}
}

Templates for Linked Data Custom Tables

The 'Linked Data' type of table is related to a profile and enables you to store general data that remain relevant over time.

'Children' table

You can create a 'Children' table, to store information related to the children of every profile in your database.

In Actito, there are various uses to this information:

  • Use the first name of a child in a customization.

  • Condition an e-mail according to the age of the children of the targeted profile

  • Condition an e-mail according to whether the targeted profile has a girl or a boy

  • Trigger a scenario for a child birthday

  • ...

The following attributes are predefined for the 'Children' template:

  • the name and first name of the child

  • the gender of the child

  • the birth date of the child

  • the child ID

  • the parent ID, which is used as link with the profile table. It can be the technical profileId or any key of your profile database.

Download the JSON definition file template for a 'Children' table: Children_EN.json

Children_EN.json
{
"userName": "Children",
"technicalName": "children",
"businessKey": "childId",
"autoGeneratedBusinessKey": false,
"description": "",
"creationTimeColumn": null,
"entityName": "entityName",
"prettyNameExpression": null,
"layout": {
"list": null,
"details": null
},
"emails": [],
"capabilityDTOs": [
{
"name": "ProfileData"
}
],
"defaultFetchingParameters": [],
"links": [
{
"objectType": "PROFILE_LINK",
"linkName": "profileLink",
"sourceFieldName": "profileId",
"targetFieldName": "profileId",
"constraintType": "onDeleteCascade",
"targetedEntityName": "entityName",
"skipIntegrityCheck": null,
"targetedProfileTableName": "tableName"
}
],
"tableEventDefinitions": [],
"fields": [
{
"objectType": "SIMPLE",
"fieldName": "lastName",
"columnName": "lastName",
"userName": "Last Name",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
 
{
"objectType": "SIMPLE",
"fieldName": "firstName",
"columnName": "firstName",
"userName": "First Name",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "gender",
"columnName": "gender",
"userName": "Gender",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "SEX"
}
},
{
"objectType": "SIMPLE",
"fieldName": "birthdate",
"columnName": "birthdate",
"userName": "Birthdate",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "DATE",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "childId",
"columnName": "childId",
"userName": "ChildId",
"required": true,
"unique": true,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 100
}
},
{
"objectType": "SIMPLE",
"fieldName": "profileId",
"columnName": "profileId",
"userName": "parentId",
"required": true,
"unique": false,
"extended": true,
"indexed": true,
"cacheIndexed": false,
"description": null,
"type": "LONG",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
}
],
"rowCleaning": {
"cleanPredicate": null,
"fifoLimit": null,
"softLimit": false,
"hardLimit": false
},
"entityId": 11
}

'Loyalty' table

You can create a 'Loyalty' table, to store information related to the loyalty card of your profiles.

In Actito, there are various uses to this information:

  • Mention the number of reward points with a customization in an e-mail.

  • Segment your Profiles data base depending on their loyalty status.

  • Target profiles when the end date of their loyalty card is coming.

  • ...

The following attributes are predefined for the 'Loyalty' template:

  • The loyalty card id

  • The loyalty card type

  • The creation date of the loyalty account

  • The end date of the loyalty account

  • The renewal date of the loyalty account

  • The balance points

  • The number of reward points to achieve the next status

  • The profile id of the loyalty card owner, which is used as link with the profile table. It can be the technical profileId or any key of your profile database.

Download the JSON definition file template for a 'Loyalty' table: Loyalty_EN.json

Loyalty_EN.json
{
"userName": "Loyalty account",
"technicalName": "loyaltyAccount",
"businessKey": "LoyaltyAccountId",
"autoGeneratedBusinessKey": false,
"description": null,
"creationTimeColumn": null,
"entityName": "{{entityName}}",
"prettyNameExpression": null,
"layout": {
"list": null,
"details": null
},
"emails": [],
"capabilityDTOs": [
{
"name": "ProfileData"
},
{
"name": "EventGeneratedTable"
}
],
"defaultFetchingParameters": [],
"links": [
{
"objectType": "PROFILE_LINK",
"linkName": "loyaltyAccount",
"constraintType": "onDeleteCascade",
"sourceFieldName": "profileReference",
"targetFieldName": "{{profileKeyAttribute}}",
"targetedEntityName": "{{entityName}}",
"targetedProfileTableName": "{{tableName}}"
}
],
"tableEventDefinitions": [
{
"technicalName": "create",
"userName": "New loyalty card",
"tableEventConditionDefinitions": [
{
"updatedProperties": [],
"type": "CREATE",
"beforePredicate": null,
"afterPredicate": null
}
]
}
],
"fields": [
{
"objectType": "SIMPLE",
"fieldName": "LoyaltyAccountCreationDate",
"columnName": "LoyaltyAccountCreationDate",
"userName": "Creation date",
"required": true,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "The date of the creation of the account",
"type": "DATE",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "LoyaltyAccountType",
"columnName": "LoyaltyAccountType",
"userName": "Type",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The type of the loyalty account",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "LoyaltyAccountEndDate",
"columnName": "LoyaltyAccountEndDate",
"userName": "End date",
"required": false,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "End date of the loyalty account",
"type": "DATE",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "LoyaltyAccountRenewal",
"columnName": "LoyaltyAccountRenewal",
"userName": "Loyalty account renewal",
"required": false,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "Date of the loyalty account renewal",
"type": "DATE",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "Balance",
"columnName": "Balance",
"userName": "Balance",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The balance of the account.",
"type": "LONG",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "UptoNextStatus",
"columnName": "UptoNextStatus",
"userName": "Up to next status",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The missing balance for the next status.",
"type": "LONG",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "LoyaltyAccountId",
"columnName": "LoyaltyAccountId",
"userName": "Loyalty account ID",
"required": true,
"unique": true,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "ID of the loyalty account",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "{{profileKeyAttribute}}",
"columnName": "{{profileKeyAttribute}}",
"userName": "{{profileKeyAttribute}}",
"required": true,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": null,
"type": "{{typeOfProfileKeyAttribute}}",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
}
],
"rowCleaning": {
"cleanPredicate": null,
"fifoLimit": null,
"softLimit": false,
"hardLimit": false
}
}

'Sponsorship' table

You can create a 'Sponsorship' table, to store information related to new contacts that you acquired because they were sponsored by an existing profile.

In Actito, there are various uses to this information:

  • Refer to the name of the sponsored person (new contact) with a customization in an e-mail sent to the sponsor

  • Target profiles who generated a high number of new contacts in order to reward them (with the help of the 'Number of' criterion in the targeting module)

  • ...

The following attributes are predefined for the 'Sponsorship' template:

  • The family name and first name of the sponsored person

  • The referral date

  • The relationship between the sponsor and the new contact

  • The conversation date, which is the activation moment of the sponsored person

  • The id of the sponsorship

  • The id of the sponsor, which is used as link with the profile table. It can be the technical profileId or any key of your profile database.

Download the JSON definition file template for a 'Sponsorship' table: Sponsorship_EN.json

Sponsorship_EN.json
{
"userName": "Sponsorship",
"technicalName": "sponsorship",
"businessKey": "sponsorshipId",
"autoGeneratedBusinessKey": false,
"description": "",
"creationTimeColumn": null,
"entityName": "entityName",
"prettyNameExpression": null,
"layout": {
"list": null,
"details": null
},
"emails": [],
"capabilityDTOs": [
{
"name": "ProfileData"
}
],
"defaultFetchingParameters": [],
"links": [
{
"objectType": "PROFILE_LINK",
"linkName": "profileLink",
"sourceFieldName": "profileId",
"targetFieldName": "profileId",
"constraintType": "onDeleteCascade",
"targetedEntityName": "entityName",
"skipIntegrityCheck": null,
"targetedProfileTableName": "tableName"
}
],
"tableEventDefinitions": [],
"fields": [
{
"objectType": "SIMPLE",
"fieldName": "lastName",
"columnName": "lastName",
"userName": "Last Name",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "firstName",
"columnName": "firstName",
"userName": "First Name",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "date",
"columnName": "date",
"userName": "Date",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "DATE",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "relationType",
"columnName": "relationType",
"userName": "Relation Type",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "conversionDate",
"columnName": "conversionDate",
"userName": "conversion Date",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "DATE",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "sponsorshipId",
"columnName": "sponsorshipId",
"userName": "sponsorshipId",
"required": true,
"unique": true,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 100
}
},
{
"objectType": "SIMPLE",
"fieldName": "profileId",
"columnName": "profileId",
"userName": "godfatherId",
"required": true,
"unique": false,
"extended": true,
"indexed": true,
"cacheIndexed": false,
"description": null,
"type": "LONG",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
}
],
"rowCleaning": {
"cleanPredicate": null,
"fifoLimit": null,
"softLimit": false,
"hardLimit": false
},
"entityId": 11
}

'Voucher' table

You can create a 'Voucher' table, to store information related to the vouchers of your profiles.

In Actito, there are various uses to this information:

  • Customize your emails with the vouchers of your profile

  • Target profiles depending on the end date of their vouchers

  • ...

The following attributes are predefined for the 'Voucher' template:

  • The voucher id

  • The validity start date

  • The validity end date

  • The voucher status (burned or not)

  • Comment

  • The user id of the voucher owner, which is used as link with the profile table. It can be the technical profileId or any key of your profile database.

Download the JSON definition file template for a 'Voucher' table: voucherEN.json

Voucher_EN.json
{
"userName": "Voucher",
"technicalName": "voucher",
"businessKey": "voucherID",
"autoGeneratedBusinessKey": false,
"description": null,
"creationTimeColumn": null,
"entityName": "{{entityName}}",
"prettyNameExpression": null,
"layout": {
"list": null,
"details": null
},
"emails": [],
"capabilityDTOs": [
{
"name": "ProfileData"
},
{
"name": "EventGeneratedTable"
}
],
"defaultFetchingParameters": [],
"links": [
{
"objectType": "PROFILE_LINK",
"linkName": "voucher",
"constraintType": "onDeleteCascade",
"sourceFieldName": "{{profileKeyAttribute}}",
"targetFieldName": "{{profileKeyAttribute}}",
"targetedEntityName": "{{entityName}}",
"targetedProfileTableName": "{{tableName}}"
}
],
"tableEventDefinitions": [
{
"technicalName": "create",
"userName": "New voucher",
"tableEventConditionDefinitions": [
{
"updatedProperties": [],
"type": "CREATE",
"beforePredicate": null,
"afterPredicate": null
}
]
}
],
"fields": [
{
"objectType": "SIMPLE",
"fieldName": "ValidityStartDate",
"columnName": "ValidityStartDate",
"userName": "Validity Start Date",
"required": false,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "The validity start date of the voucher",
"type": "DATE",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "comment",
"columnName": "comment",
"userName": "Comment",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "A comment on the voucher",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "validityEndDate",
"columnName": "validityEndDate",
"userName": "Validity End date",
"required": false,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "The validity end date of the voucher",
"type": "DATE",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "burnedVoucher",
"columnName": "burnedVoucher",
"userName": "Burned voucher",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "Define if the voucher has been burned",
"type": "BOOLEAN",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "voucherID",
"columnName": "voucherID",
"userName": "Voucher ID",
"required": true,
"unique": true,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "ID of the voucher",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "{{profileKeyAttribute}}",
"columnName": "{{profileKeyAttribute}}",
"userName": "{{profileKeyAttribute}}",
"required": true,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": null,
"type": "{{typeOfProfileKeyAttribute}}",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
}
],
"rowCleaning": {
"cleanPredicate": null,
"fifoLimit": null,
"softLimit": false,
"hardLimit": false
}
}

Templates for Repository Custom Tables

The Repository type of table contains reference data common to all the profiles or part of them.

It is therefore not directly linked to a profile table, but it can be referenced by a profile table or another custom table.

'Company' table

You can create a 'Company' table, to store information related to a list of companies. As the concept of company is very broad, the use of this template can be easily adapted to suit your own specific activity, with slight modifications if needed. The company could refer to any of the following possibilities:

  • A shop: it can be linked both to a profile table (for example, favorite shop of a profile) and to a custom table (for example, shop where a purchase was made)

  • A subsidiary: lets you associate each profile with the subsidiary in charge of his area

  • The company to which a B2B contact belongs

  • A hospital: for example, specify the closest hospital to the address of each profile

The following attributes are predefined for the 'Company' template:

  • The name of the company

  • The address of the company ('street', 'number', 'post code', 'location' and 'country' attributes)

  • The VAT number

  • The company ID

Download the JSON definition file template for a 'Company' table: Company_EN.json

Company_EN.json
{
"userName": "Company",
"technicalName": "Company",
"businessKey": "companyId",
"autoGeneratedBusinessKey": null,
"description": "null",
"creationTimeColumn": null,
"entityName": "entityName",
"prettyNameExpression": null,
"layout": {
"list": null,
"details": null
},
"emails": [],
"capabilityDTOs": [
{
"name": "LookupTable"
}
],
"defaultFetchingParameters": [],
"links": [ ],
"tableEventDefinitions": [],
"fields": [
{
"objectType": "SIMPLE",
"fieldName": "name",
"columnName": "name",
"userName": "Name",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "street",
"columnName": "street",
"userName": "Street",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 100
}
},
{
"objectType": "SIMPLE",
"fieldName": "number",
"columnName": "number",
"userName": "Number",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 10
}
},
{
"objectType": "SIMPLE",
"fieldName": "postalcode",
"columnName": "postalcode",
"userName": "Postal Code",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 20
}
},
{
"objectType": "SIMPLE",
"fieldName": "locality",
"columnName": "locality",
"userName": "Locality",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "country",
"columnName": "country",
"userName": "Country",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": {
"displayerType": "Country"
},
"typeValidator": {
"objectType": "COUNTRY"
}
},
{
"objectType": "SIMPLE",
"fieldName": "vat",
"columnName": "vat",
"userName": "VAT",
"required": false,
"unique": true,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 15
}
},
{
"objectType": "SIMPLE",
"fieldName": "companyId",
"columnName": "companyId",
"userName": "Company Id",
"required": true,
"unique": true,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": null,
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 10
}
}
],
"rowCleaning": {
"cleanPredicate": null,
"fifoLimit": null,
"softLimit": false,
"hardLimit": false
},
"entityId": 11
}

'Product catalog' table

You can create a 'Product' table, to store information related to a list of product. As the concept of product is very broad, the use of this template can be easily adapted to suit your own specific activity, with slight modifications if needed.

The following attributes are predefined for the 'Product' template:

  • The product SKU

  • The product label (category)

  • The description of the product

  • The url of the product

  • The brand

  • The image url

  • The price

  • The currency

  • The product availability

  • The product category

  • The product sub-category

  • The product version (color, size, gender)

Download the JSON definition file template for a 'Product catalog' table: productCatalogEN.json

product_Catalog_EN.json
{
"userName": "Product catalog",
"technicalName": "productCatalog",
"businessKey": "SKU",
"autoGeneratedBusinessKey": false,
"description": null,
"creationTimeColumn": null,
"entityName": "{{entityName}}",
"prettyNameExpression": null,
"layout": {
"list": null,
"details": null
},
"emails": [],
"capabilityDTOs": [
{
"name": "Repository"
}
],
"defaultFetchingParameters": [],
"links": null,
"tableEventDefinitions": null,
"fields": [
{
"objectType": "SIMPLE",
"fieldName": "name",
"columnName": "name",
"userName": "Name",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The name of the product",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "description",
"columnName": "description",
"userName": "Description",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The description of the product",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "URL",
"columnName": "URL",
"userName": "URL",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The URL of the product",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 2048
}
},
{
"objectType": "SIMPLE",
"fieldName": "imageURL",
"columnName": "imageURL",
"userName": "Image URL",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The URL of the product image",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 2048
}
},
{
"objectType": "SIMPLE",
"fieldName": "brand",
"columnName": "brand",
"userName": "Brand",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The brand of the product",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "price",
"columnName": "price",
"userName": "price",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The price of the product",
"type": "NUMBER",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "priceCurrency",
"columnName": "priceCurrency",
"userName": "Price currency",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The currency of the product price",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "categoryLevel1",
"columnName": "categoryLevel1",
"userName": "Category level 1",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The primary category of the product",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "categoryLevel2",
"columnName": "categoryLevel2",
"userName": "Category level 2",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The secondary category of the product",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "color",
"columnName": "color",
"userName": "Color",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The color of the product",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "size",
"columnName": "size",
"userName": "Size",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The size of the product",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "SKU",
"columnName": "SKU",
"userName": "SKU",
"required": true,
"unique": true,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "SKU of the product",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
}
],
"rowCleaning": {
"cleanPredicate": null,
"fifoLimit": null,
"softLimit": false,
"hardLimit": false
}
}

'Stores' table

You can create a 'Store' table, to store information related to your shops.

This is a more specialized version of the 'Company' template.

A store can be linked both to a profile table (for example, favorite shop of a profile) and to a custom table (for example, shop where a purchase was made)

The following attributes are predefined for the 'Store' template:

  • The Id of the store

  • The name of the store

  • The store status

  • The address of the store ('street', 'number', 'post code', 'location' and 'country' attributes)

  • The contacts data of the store ('email address', 'phone number')

  • The contact person of the store

Download the JSON definition file template for a 'Stores' table: storesEN.json

stores_EN.json
{
"userName": "Stores",
"technicalName": "stores",
"businessKey": "storeID",
"autoGeneratedBusinessKey": false,
"description": null,
"creationTimeColumn": null,
"entityName": "{{entityName}}",
"prettyNameExpression": null,
"layout": {
"list": null,
"details": null
},
"emails": [],
"capabilityDTOs": [
{
"name": "Repository"
}
],
"defaultFetchingParameters": [],
"links": null,
"tableEventDefinitions": null,
"fields": [
{
"objectType": "SIMPLE",
"fieldName": "name",
"columnName": "name",
"userName": "Name",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The name of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "type",
"columnName": "type",
"userName": "Type",
"required": false,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": true,
"description": "The type of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "status",
"columnName": "status",
"userName": "Status",
"required": false,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": true,
"description": "The status of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "mode",
"columnName": "mode",
"userName": "Mode",
"required": false,
"unique": false,
"extended": false,
"indexed": true,
"cacheIndexed": true,
"description": "The mode of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "addressStreet",
"columnName": "addressStreet",
"userName": "Address Street",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The address street of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "addressStreetNumer",
"columnName": "addressStreetNumber",
"userName": "Address street number",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The address street number of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "addressPostalCode",
"columnName": "addressPostalCode",
"userName": "Address postal code",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The address postal code of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "addressCity",
"columnName": "addressCity",
"userName": "Address city",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The address city of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "addressCountry",
"columnName": "addressCountry",
"userName": "Address country",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The address country of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": {
"displayerType":"Country"
},
"typeValidator": {
"objectType" : "COUNTRY"
}
},
{
"objectType": "SIMPLE",
"fieldName": "addressStreetAdditionalInfo",
"columnName": "addressStreetAdditionalInfo",
"userName": "Address street additional information",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "Some additional information about the address of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "contactFirstname",
"columnName": "contactFirstname",
"userName": "Contact firstname",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The firstname of the contact",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "contactLastname",
"columnName": "contactLastname",
"userName": "Contact lastname",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The lastname of the contact",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "phoneNumber",
"columnName": "phoneNumber",
"userName": "Phone Number",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The phone number of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": {
"displayerType":"PhoneNumber"
},
"typeValidator": {
"objectType" : "PHONE_NUMBER"
}
},
{
"objectType": "SIMPLE",
"fieldName": "contactEmailAddress",
"columnName": "contactEmailAddress",
"userName": "Contact Email Address",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The e-mail address of the contact",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType" : "EMAIL_ADDRESS"
}
},
{
"objectType": "SIMPLE",
"fieldName": "storeID",
"columnName": "storeID",
"userName": "Store ID",
"required": true,
"unique": true,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "ID of the store",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
}
],
"rowCleaning": {
"cleanPredicate": null,
"fifoLimit": null,
"softLimit": false,
"hardLimit": false
}
}

'Subscription catalog' table

You can create a 'Subscription catalogue' table, to store information related to a list of subscriptions from your catalogue. As the concept of subscription is quiet broad depending on the industry: media, sport, services,.. the use of this template can be easily adapted to suit your own specific activity, with slight modifications if needed.

The following attributes are predefined for the 'Subscription Catalogue' template:

  • The reference of the subscription

  • The label of the subscription

  • The description of the subscription

  • The url of the subscription

  • The image url

  • The brand

  • The price

  • The currency

  • The subscription type and category

  • The availability

  • The periodicity

  • The subscription ID

Download the JSON definition file template for a 'Subscription catalog' table: subscriptionCatalogEN.json

Subscription_catalog_EN.json
{
"userName": "Subscription catalog",
"technicalName": "subscriptionCatalog",
"businessKey": "subscriptionID",
"autoGeneratedBusinessKey": false,
"description": null,
"creationTimeColumn": null,
"entityName": "{{entityName}}",
"prettyNameExpression": null,
"layout": {
"list": null,
"details": null
},
"emails": [],
"capabilityDTOs": [
{
"name": "Repository"
}
],
"defaultFetchingParameters": [],
"links": null,
"tableEventDefinitions": null,
"fields": [
{
"objectType": "SIMPLE",
"fieldName": "name",
"columnName": "name",
"userName": "Name",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The name of the subscription",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "description",
"columnName": "description",
"userName": "Description",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The description of the subscription",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "URL",
"columnName": "URL",
"userName": "URL",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The URL of the subscription",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 2048
}
},
{
"objectType": "SIMPLE",
"fieldName": "imageURL",
"columnName": "imageURL",
"userName": "Image URL",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The URL of the subscription image",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 2048
}
},
{
"objectType": "SIMPLE",
"fieldName": "brand",
"columnName": "brand",
"userName": "Brand",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The brand of the subscription",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "price",
"columnName": "price",
"userName": "price",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The price of the subscription",
"type": "NUMBER",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "priceCurrency",
"columnName": "priceCurrency",
"userName": "Price currency",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": false,
"description": "The currency of the subscription price",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "category",
"columnName": "category",
"userName": "Category",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The category of the subscription",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "type",
"columnName": "type",
"userName": "Type",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The type of the subscription",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
},
{
"objectType": "SIMPLE",
"fieldName": "periodicity",
"columnName": "periodicity",
"userName": "Periodicity",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The periodicity of the subscription",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 50
}
},
{
"objectType": "SIMPLE",
"fieldName": "availability",
"columnName": "availability",
"userName": "Availability",
"required": false,
"unique": false,
"extended": false,
"indexed": false,
"cacheIndexed": true,
"description": "The availability of the subscription",
"type": "BOOLEAN",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": null
},
{
"objectType": "SIMPLE",
"fieldName": "subscriptionID",
"columnName": "subscriptionID",
"userName": "subscriptionID",
"required": true,
"unique": true,
"extended": false,
"indexed": true,
"cacheIndexed": false,
"description": "The unique identifier of the subscription",
"type": "STRING",
"possibleValues": [],
"valueDisplayer": null,
"typeValidator": {
"objectType": "STRING_LENGTH",
"minCharacters": 0,
"maxCharacters": 256
}
}
],
"rowCleaning": {
"cleanPredicate": null,
"fifoLimit": null,
"softLimit": false,
"hardLimit": false
}
}