Speaker Contract Generation

  • Browser
  • iPad

Events Management users can now automate the creation of Speaker Contracts according to Contract Templates. Contracts created this way are created on a per-Event basis and can be printed to capture physical signatures as well as provide a physical copy of the contract to the speaker. This prevents event organizers from having to manually create new contracts for each speaker.

Contracts are created using customer-defined .docx templates containing the legal language of the contract. Data from the event, event speaker, and contract data generated in the system are merged into the .docx template to create a PDF output file.

For example, Sarah Jones organizes an event with Dr. Clinton Ackerman as a speaker. She generates the contract using a preset .docx template and data from the system. A PDF file is attached to the event speaker record which she then prints and delivers to Dr. Ackerman.

Components of a Speaker Contract Template

  • Contract Text Template – an EM_Catalog_vod record of type Contract_vod with a .docx attachment. The .docx attachment is the legal text of the contract. This template includes tokens to merge values from the event, event speaker, or contract.
  • Contract Data Template – a Contract record with associated contract Lines. The Contract includes a name and effective dates, and is flagged as a template the contract data is merged into. The contract contains a look-up to EM_Catalog_vod to indicate which contract text template is used. The contract lines include the list of services available, default rates, default quantities, and optional quantity and rate min and max thresholds.
  • Event Rules and Topic Materials – configuration records determining which events use which contract text templates. Using Event Rules, a contract text template can be associated to different event types. Using topic materials, a contract text template can be associated to different event topics. When a user creates an event with one of the configured event types or event topics, the contract text template and all associated contract data templates are available when generating a contract for an individual speaker for that event.


To configure Speaker Contract Generation for Events Management:

  1. Ensure Contract and Contract Templates are configured for the appropriate user profile. See Configuring Contracts and Creating Contract Templates for configuration steps.
  2. Grant admins the following permissions:

    Object OLS Record Types Fields FLS
    Contract_vod CRUD EM_Speaker_Contract_vod
    • Description_vod
    • Language_vod
    • EM_Catalog_vod
    • EM_Speaker_vod
    • EM_Tier_vod
    • EM_Total_Payment_vod
    • Template_vod
    Contract_Line_vod CRUD EM_Speaker_Contract_vod
    • EM_Rate_vod
    • EM_Rate_Type_vod
    • EM_Rate_Max_vod
    • EM_Rate_Min_vod
    • EM_Service_Quantity_vod
    • EM_Service_Quantity_Max_vod
    • EM_Service_Quantity_Min_vod
    • EM_Total_Payment_vod
    • Service_vod
    • Service_Name_vod
    Contract_Partner_vod CRUD EM_Speaker_Contract_vod






    • Event_vod
    • External_ID_vod
    • Material_vod
    • Material_Type_vod


    EM_Event_Speaker_vod CRUD n/a


    EM_Speaker_vod CRUD n/a Tier_vod Edit
  3. Grant admins access to the following tabs:

    • EM Catalog
    • Contract
  4. Grant end users the following permissions:

    Object OLS Record Types Fields FLS






    • EM_Catalog_vod
    • EM_Event_Speaker_vod
    • Description_vod
    • Language_vod
    • EM_Tier_vod
    • EM_Total_Payment_vod
    • Template_vod








    • EM_Rate_vod
    • EM_Rate_Type_vod
    • EM_Rate_Max_vod
    • EM_Rate_Min_vod
    • EM_Service_Quantity_vod
    • EM_Service_Quantity_Max_vod
    • EM_Service_Quantity_Min_vod
    • Service_vod

    • Service_Name_vod



    Contract_Partner_vod CRU EM_Speaker_Contract_vod


    EM_Event_Speaker_vod RU n/a


    EM_Speaker_vod RU n/a Tier_vod Read
  5. Grant all users access to the EM_Manage_Contracts_vod Visualforce page.
  6. Update the Formatted_Name_vod field on the Contract_Partner_vod object to the following:

    IF(ISBLANK(Account_vod__c), IF(ISBLANK(EM_Speaker_vod__c), IF(ISBLANK(EM_Event_Speaker_vod__c), "", EM_Event_Speaker_vod__r.Speaker_Name_vod__c),EM_Speaker_vod__r.Name),
    IF( Account_vod__r.IsPersonAccount,
    Account_vod__r.LastName & ", " & Account_vod__r.FirstName & IF(ISNULL(Account_vod__r.Suffix_vod__c), "", " " & Account_vod__r.Suffix_vod__c), Account_vod__r.Name ))

    This ensures users with Read permission to the Contract_Partner_vod object can view the Event Speaker's name even if the user does not have Read permission to the Event Speaker record.

  7. Activate the appropriate User_Detail_vod VMOC.
  8. Create a new EM_Event_Layout_vod record.
  9. Add the Acceptance_ID_vod field to the appropriate Contract_Partner_vod object page layouts.
  10. Add the Manage_Contract_vod button to the Visible_Buttons_vod field on the new EM_Event_Layout record for the appropriate EM_Event_Speaker_vod object page layouts.

    For more information, see Defining Page Layouts.

Uploading Speaker Contract Templates

A printable version of a speaker contract is controlled by an uploaded Speaker Contract Text Template in the form of a Microsoft Word Document (.docx). This template uses tokens to populate the printable version of a contract.

All formatting from the .docx template is copied when the user generates a contract, including images and text formatting. Tokens are replaced with the data from the system that they reference.

The .docx file should not contain a table.

To upload a Contract Text Template:

  1. Navigate to the EM Catalog tab and select New EM Catalog.
  2. Select the Contract_vod record type and select Continue.
  3. Set the Name for the new entry before saving.
  4. Select Attach File on the Notes and Attachments related list.
  5. Select Select File... and navigate to where the .docx template is located, then select Attach File.
  6. Set the EM Catalog record's Status_vod field to Approved_vod.

Supported Tokens

The actual templates are created by the marketing team or admin users and contains tokens merged together for the final PDF output. These tokens pull information from fields in various objects related to the speaker contract:

  • Event Speaker Fields – Token format: {{EM_Event_Speaker_vod__c.FieldAPIName}}
  • Contract Fields – Token format: {{Contract _vod__c.FieldAPIName}}
  • Contract Line Fields – Token format: {{Contract_Line_vod__c.FieldAPIName}}
  • Tokens are placed in a table or in a string of text. Data is repeated in the final output for each Contract Line. For example, if a token references the Service Name, and there are two Contract Lines, both Contract Lines display in the final output.

    Contract lines sort in ascending order based on the Service_Name_vod field.

  • Contract Partner Fields – Token format: {{Contract_Partner_vod__c.FieldAPIName}}
  • Relationship fields from the above list of supported objects up to one level deep – Token format: {{ObjectAPIName.RelationshipName.FieldAPIName}}

    For example, {{EM_Event_Speaker_vod__c.Event_vod__r.Start_Time_vod__c}} is supported, while {{EM_Event_vod__c.EM_Speaker_vod__r.Account.Name}} is not supported

Example .docx template token:

Service Name Rate Rate Type Service Quantity Total
{{Contract_Line_vod__c.Service_Name_vod__c}} {{Contract_Line_vod__c.EM_Rate_vod__c}} {{Contract_Line_vod__c.CurrencyISOCode}} {{Contract_Line_vod__c.EM_Rate_Type_vod__c}} {{Contract_Line_vod__c.Service_Quantity_vod__c}} {{Contract_Line_vod__c.EM_Total_Payment_vod__c}}
Contract Total       {{Contract_vod__c.Total_Payment_vod__c}}

Example output in the printable PDF:

Service Name Rate Rate Type Service Quantity Total
Advisory Services 400 USD Day 1 400 USD
Leading the Workshop 200 USD Hour 2 400 USD
Speaking at the Keynote 100 USD Hour 2 200 USD
Contract Total       1000 USD

Aligning Contract Text Templates to Events

Contract Templates can be automatically associated to an event type or topic using Event Rules or Topic Materials. See Managing Event Materials for more information.

Creating a Contract Data Template and Linking it to a Contract Text Template

To manually create a new Contract Data Template:

  1. Navigate to the Contracts tab and select New Contract.
  2. Select the EM_Speaker_Contract_vod record type and select Continue.
  3. Set the following fields for the Contract:

    • Name
    • Start_Date_vod
    • End_Date_vod
    • Template_vod – TRUE
    • EM_Catalog_vod – Contract Text Template to be used to generate the printable PDF attachment
  4. Set the following optional fields:

    • EM_Tier_vod – Tier of the Contract. Used when determining which templates are applicable for the Event Speaker.
    • Language_vod
  5. Select Save.
  6. Select New Contract Line on the Contract Line Related List of the Contract page layout.
  7. Select the EM_Speaker_Contract_vod record type.
  8. Set at least the following fields for the Contract Line record:

    • Service_vod – Speaker Service defined in the EM Catalog
    • EM_Service_Quantity_vod
    • EM_Service_Quantity_Min_vod – Only applicable with Negotiable Contracts
    • EM_Service_Quantity_Max_vod – Only applicable with Negotiable Contracts
    • Mandatory_Contract_Line_vod
    • EM_Rate_vod
    • EM_Rate_Min_vod – Only applicable with Negotiable Contracts
    • EM_Rate_Max_vod – Only applicable with Negotiable Contracts
    • EM_Rate_Type_vod – Type of the Rate for the Service (Hour, Day, Event)
  9. Select Save, then Activate.

The new Template is automatically locked with Activation.

Defining Contract Template Listing Logic

The Lookup Filter criteria on the Contract_vod field on the EM_Event_Speaker_vod object is used to define custom logic to filter the contract templates displayed. This criteria is applied to available speaker contract templates on the Manage Contract page.

For example, the lookup filter criteria is set up so that a tier attribute on the Event Speaker controls which contract data templates are available (Event Speaker: Tier EQUALS Contract: Tier). In this case, the relevant contract data template is displayed and selected depending on what Tier the speaker is assigned to, according to fair market value estimations.

  • Tier 1 Template – Fixed Rates, Tier = 1
  • Tier 1 Template – Negotiable Rates, Tier = 1
  • Tier 2 Template, Tier = 2

And two available speakers:

  • Dr. Clinton Ackerman, Tier = 1
  • Dr. Tonja Holma, Tier = 2

The lookup filter criteria of Event Speaker: Tier EQUALS Contract: Tier displays the Tier 1 Template with Fixed Rates and the Tier 1 Template with Negotiable Rates when Dr. Ackerman is selected. If Dr. Holma is selected, the Tier 2 Template is automatically selected.


Creating and Updating Contracts for Event Speakers

To create a new Contract:

  1. Select Manage Contracts from the Event Speaker record, then select New Contract.
  2. Select the desired Contract Template from the list of Contracts. Contracts display based on the following criteria:
    • The Template_vod field is set to True
    • The Status_vod field is Activated
    • A Contract Print template is available as an Event Material
    • The Contract template matches the lookup field criteria defined by the EM_Event_Speaker_vod field on the Contract_vod object
    • User has access to the record type of the Contract Template
    • The template is not used for the same Speaker
  3. Select the desired Contract Data Template, then Continue.

    If only one Contract Template is available for the Event Speaker, it is automatically selected and Step 3 is automatic.

  4. Edit the appropriate negotiable fields, if necessary.

    The Rate Min/Max and Service Quantity Min/Max columns only display Online. An error displays if the user enters values violating the Template's minimum and maximum values for the Rate and Service Quantity fields.

    Additionally, a warning indicator also displays next to the Total Payment for the contract in case it surpasses the Cap Remaining value for the selected Speaker.

    Contract Negotiation capabilities are enabled based on the Contract Line page layout. To enable the option to override Rates and Service Quantities, mark these fields as editable on the respective Contract Line page layout assigned to the record type.

  5. Select Create Contract to begin the PDF generation process. The PDF is named with the convention [Contract_Partner_vod.Name].pdf and is saved as an attachment on the Event Speaker.

  • When the contract is created, new Contract, Contract Partner, and Contract Line records are created
  • The Contract is a clone of the Contract Data Template used to initiate the Contract generation. The total value from the lines is stamped to the EM_Total_Payment_vod__c field.
  • The Contract Partner associates the new Contract record to the Event Speaker record.
  • The Contract Line records clone the Contract Lines from the Contract Data Template, but include the final rates and quantities instead of the template rates and quantities.

Users can update existing contracts by following the same process, beginning with Step 1. Existing Contracts can only be updated if there is at least value change on a contract line. Each time a Contract is updated, the existing PDF output file for that contract, as well as the contract data, is replaced with a newly generated version. This is to ensure there is only one valid PDF for every contract containing the most up to date information.

If no .docx file is attached to the EM Catalog, a PDF is not generated. If there is any error during PDF generation, for example in case a non-optional token is unable to retrieve data from the specified field, users can retry PDF generation by selecting the Manage Contracts button on the appropriate Event Speaker record.

Activating a Contract

Users can activate existing contracts when the Contract Partner Status is either Saved or Signed. If a signature is captured in the Signature_vod field, the activation occurs and automatically sets the Status_vod field to Activated_vod.

If a signature is not captured:

  1. Select Browse and navigate to the appropriate file to upload as a signature.
  2. Select Activate.

    iPad users can use the device's photo library or camera for uploading attachments by selecting the Camera icon.

The uploaded files are attached to the Event Speaker using the following naming convention: [Contract_Partner_vod.Name]_[incremental number starting at 1]_[Translated label of Status_vod.Signed_vod].

This naming convention applies when uploading signed contracts on the iPad platform.

The Acceptance_ID_vod field is set to the value of the Name field on the Contract_Partner_vod object, and the Status_vod field is updated to Activated_vod.

Signing and Activating a Contract

iPad users may capture a digital signature directly from the Manage Contracts page when activating a Contract:

  1. Select the appropriate Contract from the Event Speaker's Manage Contracts screen.
  2. Select Sign. The Event Speaker must sign before selecting Accept. The Signature data saves on the Contract Partner record.

Using the Manage Contracts feature requires a persistent internet connection. If the user is offline when capturing the signature, the signature is saved locally and a warning displays stating the information is uploaded during the next time the user navigates to the Manage Contracts screen in the application.

The company fields visible in the signature page are defined by HTML in the Veeva Message COMPANY_FIELDS_FOR_PRINT;;EVENTS_MANAGEMENT.


  <tr><td>Verteo Biopharma</td></tr>
  <tr><td>87 Street Avenue</td></tr>
  <tr><td>California, USA</td></tr>

To display the company logo on the signature page, follow these guidelines:

  • Create a new attachment with the logo file in the Documents tab in Veeva CRM online under the images folder
  • The naming convention for the file must be event_logo.xxx, where xxx is the standard file extension for the file type (The following file types are supported: GIF, JPG, and PNG)

    GIF files do not animate.

  • Set the keyword to offline in order for the logo to be synced down

The maximum logo size is 500 pixels wide by 250 pixels tall. Images larger than this are scaled down to fit while maintaining their aspect ratio, images smaller than the maximum size are displayed in their original size.