Source: https://vaultcrmhelp.veeva.com/doc/Content/CRM_topics/CyclePlans/ClassicCP/ClassicCyclePlanConfig.htm

## Configuring Classic Cycle Plans

[![Closed](../../../../Skins/Default/Stylesheets/Images/transparent.gif)Components](#)

The Classic Cycle Plans module consists of four objects covering Classic Cycle Plan creation, design, and execution.

#### Cycle Plan (cycle\_plan\_\_v)

Cycle Plan records are used for capturing foundational information for each cycle plan. This includes the plan's name, its active time frame, and the assigned territory. Each active Cycle Plan can only be assigned to one territory.

#### Cycle Plan Target (cycle\_plan\_target\_\_v)

Cycle Plan Target records define which accounts are included in the plan and the interaction goals for each targeted account. As users complete calls relevant to the plan, those activities are reflected on the Cycle Plan Target record.

#### Cycle Plan Detail (cycle\_plan\_detail\_\_v)

Cycle Plan Detail records define which products are included in the plan, and product interaction goals for each targeted account. When users capture product detailing activities relevant to the plan on a call report, those activities are reflected on the Cycle Plan Detail record.

#### Cycle Plan Adjustment (cycle\_plan\_adjustment\_\_v)

The Cycle Plan Adjustment object captures discrepancies in cycle plan counts between mobile devices and the online database. Cycle Plan data is not stored on the object; data is kept locally on the mobile device.

#### Product Catalog (product\_\_v)

Products in a cycle plan are sourced from the Product Catalog. Products are available in a cycle plan if they are assigned to the user in My Setup, and are not excluded from cycle plans.

### Configuring Classic Cycle Plans for

[![Closed](../../../../Skins/Default/Stylesheets/Images/transparent.gif)Cycle Plan Admin Users](#)

To configure this module:

1. Ensure the following configuration is complete:

* [Configuring the Product Catalog](../../Products/ConfigProduct.htm)
* [Configuring Call Reporting](../../Call_Reporting_2/ConfiguringCR.htm)

2. Navigate to **Admin > Configuration > Tabs**.
3. Create a tab for the **cycle\_plan\_\_v** object.
4. Navigate to **Admin > User & Groups > Permission Sets**.
5. Select the appropriate permission set.
6. Select the **Objects** tab.
7. Grant the following permissions:

   | Object | Object Permission | Object Types | Fields | Field Permission |
   | --- | --- | --- | --- | --- |
   | cycle\_plan\_\_v | CRED | n/a | All | Edit |
   | cycle\_plan\_adjustment\_\_v | CRED | n/a | All | Read |
   | cycle\_plan\_detail\_\_v | CRED | n/a | All | Edit |
   | cycle\_plan\_target\_\_v | CRED | n/a | All | Edit |
8. Grant Execute permission to the following actions on the **cycle\_plan\_\_v** object:

* cp\_submit\_\_v
* cp\_unlock\_\_v

9. Grant View permission to the **cycle\_plan\_target\_section\_\_v** section control on the cycle\_plan\_\_v object. This enables the Cycle Plan Targets table, for an overview of progress towards call goals.
10. Grant View permission to the following field controls on the **cycle\_plan\_target\_\_v** object:

* cycle\_plan\_add\_target\_\_v - Enables adding targets to a cycle
* cycle\_plan\_apply\_list\_\_v - Enables applying an account list to the cycle
* cycle\_plan\_schedule\_calls\_\_v - Enables scheduling calls for the selected targets
* display\_product\_details\_\_v - Enables displaying cycle plan metrics by detail product in the Cycle Plan Targets table, in addition to an overview of metrics for all products in the plan

11. Select the **Tabs** tab in the permission set.
12. Grant View permission to the **Cycle Plans** tab.
13. Select the **Pages** tab in the permission set.
14. Grant View permission to the **Cycle Plan Target** page.
15. Navigate to **Admin > Configuration > Objects > cycle\_plan\_\_v > Fields**.
16. Ensure the **attainment\_difference\_\_v** and **expected\_calls\_\_v** formula field expressions do not reference any other formula fields. Referencing other formulas from a formula field expression is not supported.

Since the attainment\_difference\_\_v formula field expression subtracts the attainment\_\_v formula field expression from the expected\_attainment\_\_v formula field expression, the attainment\_difference\_\_v expression must be manually edited to reflect changes to attainment\_\_v or expected\_attainment\_\_v, if those formula field expressions are edited.

#### Configuring Layouts for Classic Cycle Plans

To configure layouts for this module:

1. Navigate to **Admin > Configuration > Objects > cycle\_plan\_\_v > Layouts**.
2. Place the **cycle\_plan\_target\_section\_\_v** section control on the appropriate cycle\_plan\_\_v layouts.
3. Place the **Cycle Plan Targets** related object section on the appropriate cycle\_plan\_\_v layouts.

   ![](../../../Resources/Images/Classic Cycle Plans/Config/CyclePlanTargetsConfigCropped.png)
4. Add any additional columns to be displayed in the Cycle Plan Targets table to the **Cycle Plan Targets** related object section (optional).

By default, actual\_calls\_\_v and total\_calls\_\_v columns are included. These two columns enable the display of all standard cycle plan target columns: Actual, Planned, Scheduled, and Percent Attainment. actual\_calls\_\_v enables these columns for the current user’s activity (My Calls), while total\_calls\_\_v enables these columns for all activity across the territory (Total Calls).

5. Select **Layout Rules** for the cycle\_plan\_\_v layout.
6. Create a layout rule to hide the **Cycle Plan Targets** related object section:

* Populate the IF this Layout Rule Expression is TRUE box with the expression 'true'
* Apply the following display effects for the layout rule:
* Effect: Hide
* Type: Sections
* Value: Cycle Plan Targets

![](../../../Resources/Images/Classic Cycle Plans/Config/HideCyclePlanTargetRule.png)

7. Navigate to **Admin > Configuration > Objects > cycle\_plan\_target\_\_v > Layouts**.
8. Place the following field controls on the appropriate **cycle\_plan\_target\_\_v** layouts.
9. cycle\_plan\_add\_target\_\_v - Enables adding targets to a cycle
10. cycle\_plan\_apply\_list\_\_v - Enables applying an account list to the cycle
11. cycle\_plan\_schedule\_calls\_\_v - Enables scheduling calls for the selected targets
12. display\_product\_details\_\_v - Enables displaying cycle plan metrics by detail product in the Cycle Plan Targets table, in addition to an overview of metrics for all products in the plan
13. Select **Layout Rules** for the cycle\_plan\_target\_\_v layout.
14. Create a layout rule to hide field controls on **cycle\_plan\_target\_\_v** layouts:

* Populate the IF this Layout Rule Expression is TRUE box with the expression 'true'
* Apply the following display effects for the layout rule:
* Effect: Hide
* Type: Controls
* Value: cycle\_plan\_add\_target\_\_v, cycle\_plan\_apply\_list\_\_v, cycle\_plan\_schedule\_calls\_\_v, display\_product\_details\_\_v

![](../../../Resources/Images/Classic Cycle Plans/Config/HideFieldControls.png)

15. Navigate to **Admin > Configuration > Objects > veeva\_settings\_\_v**.
16. Place the **calc\_cycle\_plans\_\_v** field on the appropriate veeva\_settings\_\_v layouts. Ensure the field default value is: (cycle\_plan\_\_vr.active\_\_v = 'true') AND (cycle\_plan\_\_vr.start\_date\_\_v <= last\_days:1) AND (cycle\_plan\_\_vr.end\_date\_\_v > last\_days:1)

[![Closed](../../../../Skins/Default/Stylesheets/Images/transparent.gif)End Users and Managers](#)

To configure this module:

1. Ensure the following configuration is complete:

* [Configuring the Product Catalog](../../Products/ConfigProduct.htm)
* [Configuring Call Reporting](../../Call_Reporting_2/ConfiguringCR.htm)

2. Navigate to **Admin > User & Groups > Permission Sets**.
3. Select the appropriate permission set.
4. Select the **Objects** tab.
5. Grant the following permissions:

   | Object | Object Permission | Object Types | Fields | Field Permission |
   | --- | --- | --- | --- | --- |
   | cycle\_plan\_\_v | At least RE\* | n/a | * actual\_calls\_\_v * planned\_calls\_\_v | Edit |
   | * active\_\_v * attainment\_\_v * attainment\_difference\_\_v * comments\_\_v * created\_by\_\_v * created\_date\_\_v * cycle\_plan\_status\_\_v * end\_date\_\_v * expected\_attainment\_\_v * expected\_calls\_\_v * external\_id\_\_v * legacy\_crm\_id\_\_v * link\_\_sys * lock\_\_v * mobile\_id\_\_v * modified\_by\_\_v * modified\_date\_\_v * name\_\_v * ownerid\_\_v * remaining\_\_v * start\_date\_\_v * status\_\_v * territory\_\_v | At least Read\* |
   | cycle\_plan\_adjustment\_\_v | CRED | n/a | All | Read\* |
   | cycle\_plan\_detail\_\_v | At least RE\* | n/a | * actual\_details\_\_v * scheduled\_details\_\_v * total\_actual\_details\_\_v * total\_scheduled\_details\_\_v | Edit |
   | * attainment\_\_v * created\_by\_\_v * created\_date\_\_v * cycle\_plan\_target\_\_v * legacy\_crm\_id\_\_v * link\_\_sys * mobile\_id\_\_v * modified\_by\_\_v * modified\_date\_\_v * name\_\_v * planned\_details\_\_v * priority\_\_v * product\_\_v * remaining\_\_v * status\_\_v * total\_attainment\_\_v * total\_planned\_details\_\_v * total\_remaining\_\_v | At least Read\* |
   | cycle\_plan\_target\_\_v | At least RE\* | n/a | * actual\_calls\_\_v * scheduled\_calls\_\_v * total\_actual\_calls\_\_v * total\_scheduled\_calls\_\_v | Edit |
   | * attainment\_\_v * created\_by\_\_v * created\_date\_\_v * cycle\_plan\_\_v * cycle\_plan\_account\_\_v * external\_id\_\_v * legacy\_crm\_id\_\_v * link\_\_sys * mobile\_id\_\_v * modified\_by\_\_v * modified\_date\_\_v * name\_\_v * original\_planned\_calls\_\_v * planned\_calls\_\_v * remaining\_\_v * remaining\_schedule\_\_v * status\_\_v * total\_attainment\_\_v * total\_planned\_calls\_\_v * total\_remaining\_\_v * total\_remaining\_schedule\_\_v | At least Read\* |

\* To enable end users and managers to create or edit cycle plans, also grant Create object permission and additional Edit field permission as needed.

6. Grant View permission to the **cycle\_plan\_section\_\_v** section control on the account\_\_v object.
7. Grant View permission to the **cycle\_plan\_target\_section\_\_v** section control on the cycle\_plan\_\_v object. This enables the Cycle Plan Targets table, for an overview of progress towards call goals.
8. Grant View permission to the following field controls on the **cycle\_plan\_target\_\_v** object:

* cycle\_plan\_add\_target\_\_v - Enables adding targets to a cycle
* cycle\_plan\_apply\_list\_\_v - Enables applying an account list to the cycle
* cycle\_plan\_schedule\_calls\_\_v - Enables scheduling calls for the selected targets
* display\_product\_details\_\_v - Enables displaying cycle plan metrics by detail product in the Cycle Plan Targets table, in addition to an overview of metrics for all products in the plan

9. Grant View permission to the **home\_page\_cycle\_plan\_section\_\_v** section control on the vmobile\_home\_page\_layout\_\_v object.
10. Select the **Tabs** tab in the permission set.
11. Grant View permission to the **Cycle Plans** tab.
12. Select the **Pages** tab in the permission set.
13. Grant View permission to the **Cycle Plan Target** page.

#### Configuring Layouts for Classic Cycle Plans

To configure layouts for this module:

1. Navigate to **Admin > Configuration > Objects > account\_\_v > Layouts**.
2. Place the **cycle\_plan\_section\_\_v** section control on the appropriate account\_\_v layouts. This enables an attainment dial on Account Detail pages, visualizing cycle plan progress for end users.
3. Navigate to **Admin > Configuration > Objects > vmobile\_home\_page\_layout\_\_v > Layouts**.
4. Place the **home\_page\_cycle\_plan\_section\_\_v** section control on the appropriate vmobile\_home\_page\_layout\_\_v layouts, to display the cycle plans widget on the iPad home page (optional). For more on the home page, see [Vault CRM Mobile Application Home Page](../../Getting_Started/MobileDeviceSetup/iOS/HomePage.htm).

#### Configuring Veeva Settings, Veeva Messages, and VMOCs

To configure Veeva Settings, Veeva Messages, and VMOCs for this module:

1. Navigate to **Business Admin > Objects > veeva\_settings\_\_v**.
2. Select the **cycle\_plan\_no\_data\_display\_\_v** Veeva Setting checkbox. This enables displaying a brief explanatory message on the Account detail page when the user does not have an active cycle plan for the account, rather than displaying an empty section.
3. Select the **enable\_cycle\_plans\_remaining\_\_v** Veeva Setting checkbox to change the Attainment column to Remaining, at either the global or profile level (optional). When this setting is enabled, the R (Remaining) column displays in place of the % (Attainment) column as the last column for each product in the Cycle Plan Targets table.
4. Navigate to **Business Admin > Objects > message\_\_v**.
5. Ensure the **TAB\_NAV\_DISPLAY** Veeva Message contains ;;MyCyclePlan;;. (For more information on tab visibility, see [Managing Tab Visibility and Display Order](../../Getting_Started/MobileDeviceSetup/TabVisibility.htm).)
6. Navigate to **Business Admin > Objects > vmobile\_object\_configuration\_\_v**.
7. Edit VMOC WHERE clauses for the **cycle\_plan\_\_v** and **cycle\_plan\_target\_\_v** objects:

* Ensure cycle\_plan\_\_v VMOC WHERE clauses match the following: WHERE (territory\_\_v CONTAINS (@@USER\_TERRITORY\_NAMES@@) OR ownerid\_\_v = @@USER\_ID@@)
* Ensure cycle\_plan\_target\_\_v VMOC WHERE clauses match the following: WHERE (cycle\_plan\_\_vr.territory\_\_v CONTAINS (@@USER\_TERRITORY\_NAMES@@) OR cycle\_plan\_\_vr.ownerid\_\_v = @@USER\_ID@@)

8. Enable VMOCs for the following objects:

* cycle\_plan\_\_v
* cycle\_plan\_adjustment\_\_v
* cycle\_plan\_detail\_\_v
* cycle\_plan\_target\_\_v

#### Customizing My Calls and Total Calls Fields

Optionally, admins can configure additional fields to display for Cycle Plan Detail products, to provide additional context. By default, Actual Details, Planned Details, and Scheduled Details values display for each Cycle Plan Detail product on Cycle Plan pages, the View Plan Details modal in My Schedule, and the Cycle Plan section on Account Detail pages. For Total Calls, the corresponding Total values display.

To configure additional fields for Cycle Plan Detail products:

1. Navigate to **Admin > Configuration > Objects > cycle\_plan\_detail\_\_v > Layouts**
2. Create two new sections on the **cycle\_plan\_detail\_\_v** layout, named as follows:

* cycle\_plan\_detail\_\_c - For fields to be displayed as My Calls values
* total\_cycle\_plan\_detail\_\_c - For fields to be displayed as Total values, across the territory

To continue displaying standard columns after creating these new sections, admins must place Actual, Planned, and Scheduled fields in each new section.

3. Place the following fields in the **cycle\_plan\_detail\_\_c** section:

* actual\_details\_\_v
* planned\_details\_\_v
* scheduled\_details\_\_v

4. Place the following fields in the **total\_cycle\_plan\_detail\_\_c** section:

* total\_actual\_details\_\_v
* total\_planned\_details\_\_v
* total\_scheduled\_details\_\_v

5. Place the appropriate additional fields in the new sections, for example, the priority\_\_v field.

For information on viewing the Cycle Plan Targets table and the Cycle Plan section on Account Detail pages, see [Monitoring Classic Cycle Plan Progress](Executing/Monitor.htm). For information on the View Plan Details modal, see [Viewing Cycle Plan Details from My Schedule](Executing/ViewDetails.htm).

#### Customizing Attainment Thresholds

To customize how performance thresholds display to end users in cycle plan attainment dials, cycle plan admin users can modify attainment thresholds. Modifying attainment thresholds changes when the cycle plan attainment dial changes color from green to yellow, and yellow to red. This visual cue helps users and managers immediately recognize areas needing attention.

Dial colors indicate whether activity is on track relative to the time elapsed in the plan:

* Green - Plan is on track
* Yellow - Targets are underreached, meaning users need to complete more activities
* Red - Targets are overreached, meaning users completed too many activities

To customize attainment thresholds:

1. Navigate to **Business Admin > Objects > message\_\_v**.
2. Modify the value in the Text field on the **CYCLE\_PLAN\_THRESHOLD;;Tablet** Veeva Message, using [best practices](../../Getting_Started/SettingUp/Veeva_Messages.htm#EditMessages) for editing Veeva Messages. The message value is two integers separated by a comma:

* The first number represents the threshold where the dial color changes from green to yellow, indicating targets are underreached
* The second number represents the threshold where the dial color changes from green to red, indicating targets are overreached

By default, the message value is 10,25.

Threshold values are compared against the current cycle plan’s Attainment Difference to determine dial color. For example, the Attainment Difference for a plan is 20, indicating users are 20 calls behind the expected attainment relative to time elapsed in the cycle. The CYCLE\_PLAN\_THRESHOLD;;Tablet Veeva Message text value is 10,25. The cycle plan attainment dial displays in yellow because the Attainment Difference is greater than 10 and less than 25. If users complete enough calls to cause the Attainment Difference to drop to nine, then the dial color changes from yellow to green.

#### Customizing Heading Labels for Cycle Plan Targets

Column heading labels in the Cycle Plan Target table can be replaced with customer-specific values through Veeva Messages. The Veeva Messages for Cycle Plan Target column headings are delivered as follows, by default:

| Message Name | Category | Language | Default Value |
| --- | --- | --- | --- |
| ABBR\_ACTUAL | CyclePlan | en\_US | A |
| ABBR\_PLANED | CyclePlan | en\_US | P |
| ABBR\_REMAINING | CyclePlan | en\_US | R |
| ABBR\_SCHEDULED | CyclePlan | en\_US | S |

The Attainment column heading is not customizable. The label always displays as %.

To customize column heading labels, modify the value in the Text field on the appropriate Veeva Messages, using [best practices](../../Getting_Started/SettingUp/Veeva_Messages.htm#EditMessages) for editing Veeva Messages:

* ABBR\_ACTUAL;;CyclePlan
* ABBR\_PLANED;;CyclePlan
* ABBR\_REMAINING;;CyclePlan
* ABBR\_SCHEDULED;;CyclePlan

Any value can be entered. Note that the column width expands based on label length, meaning a long header label could expand the column, requiring users to scroll to view the full table content.

### Enabling Cycle Plan Processing as

[![Closed](../../../../Skins/Default/Stylesheets/Images/transparent.gif)Cycle Plan Admin Users](#)

As part of configuring Classic Cycle Plans, cycle plan admin users must enable processing by enabling the cycle plan SDK job and scheduling the job to run at the appropriate intervals.

Only the Vault Owner can run this job.

To enable processing:

1. Navigate to **Admin > Operations > Job Definitions**.
2. Select the **cycle\_plan\_progress\_calculation\_\_v** SDK job.
3. Set the appropriate **Schedule**. It is recommended to run the job during off-peak hours, for example, overnight.
4. Set the **Status** to Active.
5. Select **Save**.

![](../../../Resources/Images/Classic Cycle Plans/Config/Copy of SDKJob.png)

For more on how plans are updated during processing, see [Using Cycle Plan Batch Processes](Creating/BatchProcess.htm). [Real-time calculations](Creating/RealTime.htm) can be enabled in addition to the SDK job, if desired.

#### Customizing Cycle Plan Calculations

Cycle plan admin users can customize which cycle plans and call reports are considered in calculations when plans are processed.

To customize which cycle plans are considered in cycle plan calculations:

1. Navigate to **Business Admin > Objects > veeva\_settings\_\_v**.
2. Modify the VQL WHERE clause in the **calc\_cycle\_plans\_\_v** Veeva Setting (label: CALC CYCLE PLANS). By default, the value is: (cycle\_plan\_\_vr.active\_\_v = 'true') AND (cycle\_plan\_\_vr.start\_date\_\_v <= last\_days:1) AND (cycle\_plan\_\_vr.end\_date\_\_v > last\_days:1)

If the setting is cleared, all active plans where the current date is within the cycle plan start and end dates are processed.

To customize which call reports are considered in cycle plan calculations:

1. Navigate to **Business Admin > Objects > message\_\_v**.
2. Modify the VQL WHERE clause in the **CALC\_CYCLE\_PLANS\_ACTUAL;;CyclePlan** Veeva Message to customize which call reports are considered in the cycle plan, using [best practices](../../Getting_Started/SettingUp/Veeva_Messages.htm#EditMessages) for editing Veeva Messages. By default, the value is: (call2\_status\_\_v = 'submitted\_\_v' or (call2\_status\_\_v = 'saved\_\_v' and call\_date\_\_v <=TODAY)). This includes call reports where the status is saved or submitted, and the call date is the current date or earlier.

   For example, to only count saved or submitted Face to Face calls in the cycle plan, change the value to: (call2\_status\_\_v = 'submitted\_\_v' OR (call2\_status\_\_v = 'saved\_\_v' and call\_date\_\_v <=TODAY and call\_channel\_\_v = 'face\_to\_face\_\_v'))
3. Modify the VQL WHERE clause in the **CALC\_CYCLE\_PLANS\_SCHEDULED;;CyclePlan** Veeva Message to customize which call reports are counted as scheduled calls in the cycle plan, using [best practices](../../Getting_Started/SettingUp/Veeva_Messages.htm#EditMessages) for editing Veeva Messages. By default, the value is: (call2\_status\_\_v = 'planned\_\_v' or (call2\_status\_\_v = 'saved\_\_v' and call\_date\_\_v >TODAY)). This includes call reports where the status is planned or saved, and the call date is later than the current date.

WHERE clause modifications must use proper VQL syntax. Clause components in these Veeva Messages are limited to the following:

* Objects - Queries must be for fields on the cycle\_plan\_\_v or call2\_\_v objects
* Field Types - Only date or datetime fields, or date literals, are supported
* Functions - Date functions are limited to TODAY () and Last\_DAYS(). For example, Last\_DAYS:3
* Operators - The following operators are supported:
* =
* !=
* <
* >
* <=
* =>
* AND
* OR

Consider the following when modifying WHERE clauses for cycle plan calculations:

* Parentheses must be used to define the order in which field expressions are evaluated. When nesting operators, parentheses must be used to enclose both individual expressions and the entire message text. For example, ((call2\_status\_\_v = 'submitted\_\_v' AND call\_channel\_\_v = 'face\_to\_face\_\_v') OR (call2\_status\_\_v = 'submitted\_\_v' AND call\_channel\_\_v = 'video\_v' AND is\_sampled\_call\_\_v = 'true'))
* Nested select statements are not supported
* Joins or multiple object queries are not supported
* Querying by territory is not supported, since the territory on a cycle plan must match the target account territory

For more information on operators and functions in Vault, see the [Vault Formula Reference Guide](https://platform.veevavault.help/en/gr/52324/) on the Vault Platform help site.

If the queries in these Veeva Messages are cleared, or the values in the calc\_cycle\_plans\_actual\_\_v and calc\_cycle\_plans\_scheduled\_\_v Veeva Settings pointing to these messages are cleared, all call reports within the cycle plan's time frame and territory are included in cycle plan calculations.

### Related Topics

[Creating Classic Cycle Plans](Creating/CreatePlan.htm)

[Using Cycle Plan Progress Calculations](Creating/BatchProcess.htm)

[Real-Time Calculations for Classic Cycle Plans](Creating/RealTime.htm)
