Skip to main content
Full Circle Insights

Release Notes 1.15


This document highlights new features and functionality that are part of the 1.15 release of the Full Circle Response Management Application.  This release is primarily related to Campaign Influence enhancements and infrastructure updates.

Capturing Opportunity Stage related to influential responses

Campaign influence is calculated and output to Campaign Influence Detail records. During calculations the information about the related opportunity stage relative to the influential response will be calculated.


You can use these fields to report on campaign influence relative to opportunity stage. If you are looking at the Campaign influence Detail records, you may want to add these new fields to the page layout.


Below is a listing of the new fields and description.


Field Name

API Name







Opportunity Stage



Value of the Opportunity Stage at the date the Campaign Member Date is calculated. If there is no value, the field will be populated with the value ‘Pre-Opportunity’.

Opportunity Stage Date



Date the value in the ‘Opportunity Stage’ field (above) was set.

Next Opportunity Stage



Value of the next Opportunity Stage, if there was an opportunity stage progression after the related Campaign Member Date.

Opportunity Stage Progression Date



Date the value in the ‘Next Opportunity Stage’ field (above) was set.

First Touch Campaign Date Filter

A new setting is available to restrict the search dates for finding the First Touch Campaign. This setting is accessed from Setup > Installed Packages > Configure (Next to Full Circle CRM Response Management) > Campaign Attribution Button > Advanced Campaign Attribution Settings section.

We introduced this setting to support organizations with a long history using Salesforce. These organizations may not want to credit, for example, a response that is five years old. In this case they can set a global timeframe for the application to find the first response used to determine the first campaign touch. The timeframe is relative to the opportunity create date.


The default setting for this field is blank, which disables the filter.

How the First Touch Campaign is identified

The First Touch Campaign is identified based the oldest campaign response of the originating contact. If there is a configured timeframe it will be the oldest campaign response within the timeframe.


If the opportunity is created with an active response, this contact will be added to the Admin Originating Contact field. If the opportunity is created without an active response, the code will reference the primary contact.

Behavior Change

Previous to version 1.15, setting both the first and last touch fields on an opportunity to null would cause an automatic recalculation of these fields. With the addition of First touch date filtering, this approach was no longer viable as null values on these fields are possible even for opportunities associated with a response. Recalculation is now performed for specific opportunities through the Async subsystem after association.

Manually Recalculating First & Last Touch

Administrators that want to reset First and Last Touch Campaigns may do so by using anonymous Apex to update opportunities referencing the SetFirstLastTouchOpportunties function.


Be sure to consider any functionality that may be impacted when updating opportunities, or validation rules, which may prevent updates.

Single Opportunity Syntax

FCRM.FCR_SupportAPI.SetFirstLastTouchOpportunities(new Set<ID>{‘opid’})

Where opid is the Opportunity ID you are updating.

Multiple Opportunity Syntax

FCRM.FCR_SupportAPI.SetFirstLastTouchOpportunities(new Set<ID>{‘id1’,’id2’,id3’})

Where id1 – 3 are opportunity ids you are referencing in the call. Do not have spaces between the opportunity IDs.

Up to 50 Opportunities Syntax



This operation will query up to 50 opportunities where both first and last touch are null, and attempt to set them. If an opportunity specified by the opportunityIDs set is not associated with a response, that opportunity will be ignored. Returns a Set of IDs of opportunities where the update failed.


How we assign influence weighting to the First Touch Campaign

Even though we set the First Touch Campaign based on searching a specific Contact’s history, campaign influence point weighting of the First Touch Campaign response is based on finding the oldest response associated to that campaign.

Minor Campaign Influence Detail Object Enhancements

A few other changes were made to the Campaign Influence Detail Object.


  • Added two new system fields that calculate the Unix times.
    • Unix Op Close Time (FCRM__Unix_Op_Close_Time__c)
    • Unix Op Create Time (FCRM__Unix_Op_Create_Time__c)

Campaign Influence Default Opportunity Influence Model Updates

This release adjusted the influence logic so that Campaign Type exclusions are respected when calculating first touch influence weighting.


In the example below, the first touch campaign weighting is 5 points and the campaign ‘Type’ exclusion is ‘Partners’. In this model configuration any First Touch Campaigns with the Type ‘Partners’ will not be given 5 points in influence calculations.

Deal Explorer Visualization Enhancements

The visualization tab on the Deal Explorer has been enhanced.


  • The legend item display can be toggled on and off by clicking the legend listing.
  • Enhanced hover over displayed items.

New CreateAssociation Command Parameters

Effective 1.15.3, two additional keyword parameters can be included in the CreateAssociation command:


This parameter is useful for organizations running in passive or partial passive mode to create an active response.


When the campaign is inserted with this parameter and the following is true:

  • Member status is undefined (will default to a response) or explicitly defined in the [respondedstatus] parameter as a response
  • The lead or contact has an active status and no active response
  • The response is at qualification/score threshold


The new response will have its status updated based on the lead or contact status and it will become the active response.


Without this parameter the response status will be Resolved – Already Engaged.

This parameter will apply on active or passive orgs. The effective timeout value is ten years from lead or contact create. 


If present, indicates that this response should be treated as a response prompt campaign (See extensibility guide for a description of the TreatNextCampaignAssociationAsResponsePrompts API). The response will automatically be qualified when this option is chosen.


Use this parameter to ensure a response is qualified irrespective of score fields that may be configured for evaluation. Unless the 'treatasrp' option is specified, these responses will NOT be treated as response prompt campaigns and thus will not be automatically qualified - they will score normally.

CreateAssociation Syntax

The CreateAssociation command has the following syntax (single line):


CreateAssociation [respondedstatus] [synctoactivestatus] [treatasrp] campaignid1,campaignid2,campaignid3….


Example Syntax using these two parameters


CreateAssociation 'some response status' synctoactivestatus treatasrp campaignid1,campaignid2


  • There should be a SINGLE space between parameters
  • Syntax does NOT allow spaces between campaign IDs. Campaign IDS are always last.


These responses will be processed as if performed by the marketing automation user and will trigger cascades if allowed at the global and campaign level and respect nurture timeouts.


Extensibility Model Enhancements

SetFirstLastTouchOnAssociatedOpportunities API function

Set<ID> SetFirstLastTouchOnAssociatedOpportunities(Set<ID> opportunityIDs) Calculates the first and last campaign touches on the specified opportunities that are associated to a response. This function updates first/last touch values even if they are currently set. If opportunityIDs is null, the operation will query up to 50 opportunities where both first and last touch are null, and attempt to set them. If an opportunity specified by the opportunityIDs set is not associated with a response, that opportunity will be ignored. Returns a Set of IDs of opportunities where the update failed. 


Do not call this function during an opportunity trigger or hook – it is best called during a future call

NotificationRequest hook

Called before sending Email notifications. This function is called once for each Email message (both to a user and their delegate), and again after all notifications have been processed but before emails are sent. This function can block individual Emails from being sent.


Full information on this hook can be found in the extensibility documentation

Minor Updates

  • Improve selectivity on FCR_Response_Summary_Item__c filter in FCR_DeleteCampaignMemberSequence.
  • Modified FCR_LockRecoveryBatch to use double addition instead of decimal addition to prevent out of valid range errors.
  • Allows test bypass on major release updates as well as patches.
  • Fixed campaign influence profile to include tasks related to opportunities when there are multiple leads/contacts allowed on a task.
  • Improved EventRelation handling to support shared activities with events (leads/contacts related to opportunity through EventRelation).
  • Fixed response prompt failure when cascade parent response is deleted.
  • Changed lower limit of account and opportunity batch sizes from 5 to 2.
  • Added detection/recovery for "Attempted to schedule too many concurrent batch jobs in this org (limit is 5)." in influence batch processing.
  • Detect invalid ID crash in opportunity model (corrupt FCR_Response_ID__c on opportunity).



If you need assistance from Support, please file a Case in the Full Circle Community Portal. You can login at using your Salesforce credentials.

  • Was this article helpful?