Starting in late 2016 Fastcall started the development of a new Fastcall data model

We knew we had to keep creating Tasks; all existing reports are built around Salesforce native Tasks, and this would be no small move to a new Fastcall data model.

And we also knew the benefits of using a new independent set of custom objects, to better model & detail calls, for reporting and auditing purposes. We still offer the option to replicate some “key” values in a Task record, so nothing needs to change. However, we moved a few custom fields from Task onto these new objects (so your Task object doesn’t get cluttered nor hit any of the many platform limits). If you don’t need to create Task records, you can turn this off in the Settings page.

Check out our tutorial demo:


Fastcall was creating the following 22 fields on the Task record:

  • ACD Call – Answered/Missed – For an ACD (or IVR Call Transfer) whether the connection attempt succeeded or not
  • ACD Position – Position in the ACD round for this connection attempt
  • Call Duration In Minutes – Formula field dependent on native Call Duration
  • Call Focus  –  an example of a Task pick-list field
  • Call From – Phone number where the call originated
  • Call Goal – How many calls we wanted for the related record
  • Call Id – Indexed field to store VoIP call SID (native Call Object Identifier isn’t indexed)
  • Call Metadata – Temporary call flags/internal state
  • Call Notes – Short version of the native Comments/Description field
  • Call Number – Number of calls on current “period”
  • Call Recording – URL of the recorded call
  • Call Time – Text version of the hour and minute the call was initiated
  • Call To – Phone number dialed on the call
  • Conference Room Id – Id of the conference in case of a conf call.
  • Follow Up Call – another pick-list example
  • From City/State/Zip/Country
  • Is Voice Mail Drop checkbox
  • Provider Phone Id – Id of the phone number dialed
  • Related Call Id – Id of secondary legs.
  • Spoke To – a task pick-list example
  • Voicemail

The native Salesforce Task object has a hard limit of 100 fields and we were using more than our fair share of fields. Task is also a shared object among different activities (calls, emails, meetings, SMS). More applications using the native Task object increase the chances for a conflict and start to crowd the object. It became harder to quickly find your calls among all the other task events. Tasks are just overworked and prone to conflicts.

Further, a few of these fields we did not need and many could be stored in the new custom objects.

For these reasons, we like our new data model. A Call custom object with no competition for fields and no competing workflows, triggers etc. The native Salesforce fields on Task of course remain.

  • OwnerId
  • Call Duration
  • Call Object Identifier? (We are using our custom indexed version)
  • Call Result
  • Call Type
  • Comments
  • WhatId
  • WhoId
  • Status
  • Subject

Starting in version 4.0 you will see the ability to delete Fastcall custom fields in your Task object (Activity Custom Fields).


Fastcall added four new objects: Calls, Connections, Connection Attempts, and Voicemail.

Calls are a parent object holding:

  • Call name
  • Call ID
  • Call type – Outbound / Inbound
  • Start time
  • End time
  • Connection duration
  • Wait time
  • From phone
  • To phone
  • Related record ID
  • Reply to call
  • Phone number – lookup to either inbound phone dialed or outbound caller ID
  • Status – completed, missed

Lookups to Leads, Contacts, Accounts, etc, are enabled via a custom lookup field added by you. We describe this below:



Calls can have multiple connections:

  • Connection name
  • Connection ID
  • Lookup to the Call
  • Status – completed, missed
  • Start time
  • End time
  • Connection duration
  • Wait time
  • From phone
  • To phone
  • IVR dialed
  • Subject
  • Notes
  • Call Result
  • Call Recording


NOTE: Calls are logged on the connection record because these can each be different legs of a single call answered by different users and logged uniquely.


Error details

There is also a lookup to the Task on the Connection.


Last, Connections can have multiple Connection Attempts:

  • Connection attempt name
  • Connection attempt ID
  • Lookup to the Connection
  • User
  • ACD Position
  • Status – completed, missed
  • Attempt time
  • From phone
  • To phone

The Fastcall user is on the Attempt.

Your Salesforce report will combine these three objects.  And of course, you customize these as needed.

There is a new Tab in the package for Calls. You can create list views etc.


As the last step, you may want to add lookup fields to your Salesforce object for Connections. You can include a lookup to Leads, Contact, Accounts or other objects where you want to have the lookup to calls. Go to Salesforce Setup, Objects, Connections then fields. Click new to add a new field with datatype Lookup.



Relate the Lookup to Accounts, Contacts, Leads and/or other objects that should have a lookup to Calls. Repeat the steps for each lookup object.



Name the fields Account Lookup, remember these fields are on our custom object for Calls so you will not see them on an existing Salesforce object or page. Click through to save.

Once the lookup is added, Connections are available as a related list.