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
{ "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
{ "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
{ "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
{ "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}