Skip to content

Creating a campaign module


Feedback

Before you can create a campaign, you must have a campaign module that's configured according to the business requirements.

Think this through

Just like you can have more than one Leads or Partners module, so can you have more than one Campaigns module.

However, unless there is a very strong justification for having more than one Campaigns module, don't create them. A campaign module can have several campaigns. You can add as many custom attributes to a campaign module as needed, and then create separate campaigns that use a subset of these attributes. Don't create a separate campaign module for every campaign.

You use the JSON for these steps.

  1. Add a campaign business object.
  2. Add a campaign key for the client dashboard.
  3. Add an entry in the dashboard mappings, so that the Campaign module is displayed on the customization dashboard.
  4. Add entries in the data export formats.
  1. Add the fields in the data export and import configuration.
  2. (Optional) Add fields in the start state for the Add Lead forms.

Steps

While following through these steps, use the code snippets given in Example configuration.

  1. Log in to the Vymo web app.
  2. Click Customize > Global Settings > JSON Configurations.
  3. Search for businessObjects, and add a campaign object. Change the email entries to the ones you'll use.
  4. Search for clientDashboards and add a campaign object.
  5. Search for boListDashboardMappings and add an entry.
  6. Search for DashboardMappings and add an entry to make the dashboard available to the specified roles.
  7. Search for exportDataFormats and add a VYMO_CAMPAIGN key. There's an extra space between the two { and } in this code snippet. Delete that space after you copy it to the JSON configuration.
  8. In exportDataFormats, add another key, this time for VYMO_SUB_CAMPAIGN. There's an extra space between the two { and } in this code snippet. Delete that space after you copy it to the JSON configuration.
  9. Click Customize > Module Settings, and click the pencil icon :material-lead-pencil: for the module to associate the campaign with.
  10. In Advanced Settings, click JSON View.
  11. Search for voExporterConfig, and add an entry in voExporterFields.
  12. To enable the associating of campaigns with leads that are uploaded through data import, add the vymo_campaign and vymo_sub_campaign fields to the import template.
  13. Repeat the previous three steps for each leads module that campaigns are to be associated with.
  14. (Optional) To add fields for campaigns in the Add Leads form, add the following fields to the start state of the leads module.
    • Add Campaign, whose field configuration code is if_add_campaign and input field code is add_campaign
    • Campaign, whose field configuration code is if_vymo_campaign and input field code is vymo_campaign
    • Sub Campaign, whose field configuration code is if_vymo_sub_campaign and input field code is vymo_sub_campaign
  15. (Optional) Add the fields to be used for creating campaigns in the module. Click Global Settings > Campaign Configurations, select the campaign, and use the Add Field option.
  16. (Optional) Specify the roles that have access to a campaign. The default roles are SU and admin, which you already added in a previous step while doing the dashboard mapping. Click Global Settings > Dashboard Configurations > Campaigns List, and add the roles to the Allowed for Roles field.
  17. Click Save. You see a message that the changes are now saved as a draft.
  18. In the message box, click Go To Release Management so that you can move the changes permanently to the live configuration.
  19. Click Create a UAT release. Specify the release details and make sure to enter your own email ID because that's where you receive a one-time password (OTP) to continue with the process. Click Proceed.
  20. Enter the OTP you received in the email, and click Submit. Wait for a while till you see a confirmation message saying the process is complete.
  21. To see the changes, log out and log in again.

You can now create campaigns inside this module.

Example configuration

Use these code snippets while doing the steps mentioned in the previous section.

businessObjects > campaign

Don't change anything in this code snippet except for the values of the keys in the highlighted lines.

{
    "code": "campaign",
    "deleted": false,
    "name": "Campaign",
    "scopes": null,
    "type": "campaign",
    "properties": null,
    "importerConfig": {
        "ingestorAttributes": {
            "chunkIngestor": {
                "enabled": true,
                "order": {
                    "cardinality": 10,
                    "batchSize": 100
                },
                "size": 100
            },
            "fileIngestor": {
                "mimeTypes": [{
                        "code": "csv",
                        "name": "CSV"
                    },
                    {
                        "code": "xlsx",
                        "name": "XLSX"
                    },
                    {
                        "code": "xls",
                        "name": "XLS"
                    }
                ],
                "order": {
                    "cardinality": 10,
                    "batchSize": 0
                },
                "maxAllowedEntries": 100000
            }
        },
        "emails": ["[email protected]"],
        "template": {
            "header": "Upload Summary",
            "subject": "Contact Bulk Upload Summary",
            "fromPrefix": "[email protected]"
        }
    },
    "inputFieldMappings": [{
            "disabled": false,
            "order": 10,
            "inputField": "if_name",
            "required": true,
            "hidden": false
        },
        {
            "disabled": false,
            "order": 20,
            "inputField": "if_campaign_type",
            "required": true,
            "hidden": false
        },
        {
            "disabled": false,
            "order": 30,
            "inputField": "if_module",
            "required": true,
            "hidden": false
        },
        {
            "disabled": false,
            "order": 40,
            "inputField": "if_start_date",
            "required": true,
            "hidden": false
        },
        {
            "disabled": false,
            "order": 50,
            "inputField": "if_end_date",
            "required": false,
            "hidden": false
        },
        {
            "disabled": false,
            "order": 60,
            "inputField": "if_budget",
            "required": false,
            "hidden": false
        },
        {
            "disabled": false,
            "order": 70,
            "inputField": "if_actual_cost",
            "required": false,
            "hidden": false
        },
        {
            "disabled": false,
            "order": 80,
            "inputField": "if_campaign_status",
            "required": true,
            "hidden": false
        },
        {
            "disabled": false,
            "order": 90,
            "inputField": "if_users",
            "required": false,
            "hidden": false
        },
        {
            "disabled": false,
            "order": 100,
            "inputField": "if_channel_function",
            "required": false,
            "hidden": false
        },
        {
            "disabled": false,
            "order": 110,
            "inputField": "if_parent_campaign",
            "required": false,
            "hidden": false
        },
        {
            "disabled": false,
            "order": 120,
            "inputField": "if_owner",
            "required": true,
            "hidden": false
        }
    ]
}

clientDashboards > campaign

{
    "code": "campaign",
    "deleted": false,
    "boId": "campaign",
    "display": true,
    "name": "Campaign List",
    "icon": "fa-tasks",
    "type": "bo-list"
}

boListDashboardMappings

{
    "disabled": false,
    "order": 10,
    "dashboard": "campaign",
    "columnMappings": [
        {
        "type": "bo-system-column",
        "disabled": false,
        "order": 10,
        "title": "Campaign Name",
        "visible": true,
        "sortable": true,
        "field": "inputs_map.name",
        "queryField": "inputs_map.name",
        "filter": false,
        "columnType": "text"
        },
        {
        "type": "bo-system-column",
        "disabled": false,
        "order": 20,
        "title": "Start date",
        "visible": true,
        "sortable": true,
        "field": "inputs_map.start_date",
        "queryField": "inputs_map.start_date",
        "filter": true,
        "columnType": "date"
        },
        {
        "type": "bo-system-column",
        "disabled": false,
        "order": 30,
        "title": "End date",
        "visible": true,
        "sortable": true,
        "field": "inputs_map.end_date",
        "queryField": "inputs_map.end_date",
        "filter": false,
        "columnType": "date"
        },
        {
        "type": "bo-system-column",
        "disabled": false,
        "order": 40,
        "title": "Status",
        "visible": true,
        "sortable": true,
        "columnType": "code_name_spinner",
        "field": "status",
        "queryField": "status",
        "filter": true
        },
        {
        "type": "bo-system-column",
        "disabled": false,
        "order": 50,
        "title": "Lead Module",
        "visible": true,
        "sortable": true,
        "columnType": "multi_select_auto_complete",
        "field": "inputs_map.module",
        "queryField": "inputs_map.module",
        "filter": true
        },
        {
        "type": "bo-system-column",
        "disabled": false,
        "order": 60,
        "title": "Type",
        "visible": true,
        "sortable": true,
        "field": "inputs_map.type",
        "queryField": "inputs_map.type",
        "filter": true,
        "columnType": "code_name_spinner"
        },
        {
        "type": "bo-system-column",
        "disabled": false,
        "order": 70,
        "title": "Parent Campaign",
        "visible": false,
        "sortable": true,
        "columnType": "multi_select_auto_complete",
        "field": "inputs_map.parent_campaign",
        "queryField": "inputs_map.parent_campaign",
        "filter": true
        },
        {
        "type": "bo-system-column",
        "disabled": false,
        "order": 80,
        "title": "Parent campaign",
        "visible": true,
        "sortable": false,
        "field": "inputs_map.parent_campaign_name",
        "queryField": "inputs_map.parent_campaign_name",
        "filter": false,
        "columnType": "code_name_spinner"
        }
    ]
}

DashboardMappings

For every role that needs access to the Campaigns dashboard, add an entry like the one shown in the highlighted lines. In this code snippet, the dashboard can be seen by everyone in the ADMIN and SU roles.

{
    "disabled": false,
    "dashboard": "campaign",
    "explicitScopes": true,
    "scopeMappings": [
        {
        "disabled": false,
        "order": 10,
        "scope": "ADMIN"
        },
        {
        "disabled": false,
        "order": 20,
        "scope": "SU"
        }
    ]
}

exportDataFormats

Line 5 in these examples has an extra space between the two { and }. Delete these spaces after you copy the snippet.

1
2
3
4
5
6
7
8
"VYMO_CAMPAIGN":{
    "type": "custom",
    "code": "VYMO_CAMPAIGN",
    "deleted": false,
    "expr": "{ {$get_vymo_campaign<>} }",
    "name": "VYMO_CAMPAIGN",
    "desc": "campaign name"
    }
1
2
3
4
5
6
7
8
    "VYMO_SUB_CAMPAIGN":{
    "type": "custom",
    "code": "VYMO_SUB_CAMPAIGN",
    "deleted": false,
    "expr": "{ {$get_vymo_sub_campaign<>} }",
    "name": "VYMO_SUB_CAMPAIGN",
    "desc": "sub campaign name"
    }

voExporterConfig > voExporterFields

{
    "type": "custom",
    "title": "Campaign",
    "visible": true,
    "sortable": false,
    "filter": null,
    "group": 1,
    "export": true,
    "fieldType": "json",
    "dataExporter": "VYMO_CAMPAIGN",
    "path": "."
}
{
    "type": "custom",
    "title": "Sub campaign",
    "visible": true,
    "sortable": false,
    "filter": null,
    "group": 1,
    "export": true,
    "fieldType": "json",
    "dataExporter": "VYMO_SUB_CAMPAIGN",
    "path": "."
}

See also


Did this page help? No help at allYes, totally!
Back to top