Using a JSON Template

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

These files can be used directly with their predefined attributes, or be modified to meet needs specific to your activity. For any file modification, make sure to respect the constraints explained on 'Structuring your JSON Definition File'.

Examples of Linked Data Custom Tables

'Children' table

You can create a 'Children' table. This is a Linked Data type of table, which is therefore related to a profile and enables you to store general data that remain relevant over time.

In this case, this table template will enable you 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

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
}

'Sponsorship' table

You can create a 'Sponsorship' table. This is a Linked Data type of table, which is therefore related to a profile and enables you to store general data that remain relevant over time.

In this case, this table template will allow you 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 godchild (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 godchild

  • The referral date

  • The relationship between the sponsor and the new contact

  • The conversation date, which is the activation moment of the godchild

  • The id of the sponsorship

  • The id of the sponsor, which is used as link with the profile table

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
}

Example of Repository Custom Table

'Company' table

You can create a 'Company' table. This is a Repository type of table, which contains reference data common to all the profiles or part of them.

In this case, this template will allow 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

Good to know

Please note that the maximum amount of entries in a Repository table is limited to 250 000 cells.

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
}

Example of Interaction Custom Table

'Event' table

You can create an 'Event' table. This is an Interaction type of table, which enables you to store one-off data that are recorded when a profile interacts with your activity.

In this case, this template will enable you 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

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
}