I am using opportunities in Salesforce to track professional services engagements.

As soon as the opportunity is won and closed, I will fill in a custom field called "number of days" which represents the number of man-days sold for the given opportunity e.g. 100.

I now use events inside the opportunity to track the engagement with the customer. I can have several events that may last from 1 day and up.

Can I sum the # of days in all the events and can I subtract that number from the custom field in the opportunity?

I am using the standard event object that is part of the opportunity by default (when creating an activity).


  • Are you using standard Event object or custom Event__C object? if its custom object what is relation between OPP and event ? (lookup or master-detail ) – AtulRajguru9 Feb 12 '16 at 4:26
  • It is the standard event that you can create as an open or past activity – David Brossard Feb 12 '16 at 5:09
  • Will you consider to use Apex? – Ashwani Feb 12 '16 at 5:31
  • Yes. I will have to learn how :-) – David Brossard Feb 12 '16 at 5:34
  • I can tell you the approach, you will have to code yourself. Will it work? – Ashwani Feb 12 '16 at 5:34

I can tell you the approach achieving using Apex.

  1. Get all Event records related to opportunity (Activity)
  2. Using start and due date of each event record find number of days between start and end date. Use Date class method daysBetween(secondDate). It will return number of days.
  3. Using above method get all days number and sum all.
  4. You already have total # of days in custom field. Subtract is from the sum you calculated in previous step. Store wherever you want.

Another approach to skip above point #2

  1. Create formula field in Event like End_Date - Start_Date. This will calculate # day for the record.
  2. Using above field get all days number and sum all using trigger.
  3. Within trigger subtract it with total # of days and store it. (Process builder may not work). Trigger would on Event object running on After update. Use Related to ID field to get Opportunity value.
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.