function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Dan MDan M 

Case Task versus Log A Call

I need to understand the differences between 'Log A Call' and 'New Task'.

When I do 'Log A Call' it actually creates a 'Task' record.
When I do 'New Task' it also creates a 'Task' record.

When on a case screen and I click 'Tasks and Events' I see only the item I created as 'New Task. When I click on 'Call Logs' I see only the item I created as 'Log A Call'.

Both of these items are actual task records but they are different in some way such that they only show on their respective lists when selecting Call Logs or Tasks and Events.

So, I used a SOQL statement to show me all task records for a case and of course, I get both records. Life is good. My question is, which field in the task record differentiates one as a call log and the other as a task. I've printed all the fields and their values and the 2 records appear to be identical with the exception of the Subject and Description/Comment.

Any ideas how to determine the differences, or more importantly, I'm using a C# WSDL service to write records and I would like to know how to insert one task as a task and one task as a call log.

Thanks.
Here-n-nowHere-n-now
Assuming your org doesn't have the buttons and related lists/sections overriden with custom code (both can be), the two buttons are essentially the same as you've observed, with the only difference being "Log a Call" always defaulting the Status to Completed and Type to Call.  The standard related lists segment task records by their statuses: the completed ones go to Activities and incomplete ones go to Tasks.  All of these behaviors can of course be customized on several levels, and users can always change values on the fly too, so nothing is totally clear cut, but what I described is the out-of-the-box basics.
Dan MDan M


Thanks for the reply. Okay, so you are saying the only difference is "Task.Type=Call" versus "Task.Type=??SomeValue" and the "Task.Status=Completed" versus "Task.Status=??SomeValue".

I still have issues. The problem is that in the SF user interface using web site, under develope, Schema Builder, I see that the Tasks table indeed has a "Type" Field and a "Status" Field. However, when using the Enterprise or Partner WSDL, and using a .net to insert rows, The Task object does not havea "Type" field, just "CallType" and its a picklist with values or "Inbound,Outbound...".

How can the SF user interface have one schema and the WSDL have another. I exported a new copy of the WSDL and have the same issue. Does this have anything to do with "CallCenter"?

Here-n-nowHere-n-now
Interesting.  I can see the Task field in my Enterprise WSDL:
<element name="Type" nillable="true" minOccurs="0" type="xsd:string"/>
Partner WSDL is a bit different - it's designed to be quite generic so it won't have individual field types.
Dan MDan M
Type and CallType both show in my Schema Designer but only CallType shows as a member variable of the Task Object in my Enterprise WSDL.
See images below.



User-added imageUser-added imageUser-added image



Here-n-nowHere-n-now
Well looks like somehow your "WSDL to class" didn't run the way it's supposed to, so it's missing a member.  If you look at the Enterprise XML, the Type member is clearly there.  Here's a snippet from my XML:

<complexType name="Task">
<complexContent>
<extension base="ens:sObject">
<sequence>
<element name="ALE_Activity__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
<element name="ANI_Match__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
<element name="Account" nillable="true" minOccurs="0" type="ens:Account"/>
... ...
<element name="Status" nillable="true" minOccurs="0" type="xsd:string"/>
<element name="Subject" nillable="true" minOccurs="0" type="xsd:string"/>
<element name="SystemModstamp" nillable="true" minOccurs="0" type="xsd:dateTime"/>
<element name="TDSF__TimeDriver_Id__c" nillable="true" minOccurs="0" type="xsd:double"/>
<element name="Tags" nillable="true" minOccurs="0" type="tns:QueryResult"/>
<element name="Team__c" nillable="true" minOccurs="0" type="xsd:string"/>
<element name="TimeTrade_Appointment_Set__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
<element name="Total_Calls__c" nillable="true" minOccurs="0" type="xsd:double"/>
<element name="Type" nillable="true" minOccurs="0" type="xsd:string"/>
<element name="Week__c" nillable="true" minOccurs="0" type="xsd:string"/>
<element name="What" nillable="true" minOccurs="0" type="ens:Name"/>
<element name="WhatId" nillable="true" minOccurs="0" type="tns:ID"/>
<element name="Who" nillable="true" minOccurs="0" type="ens:Name"/>
... ...
<element name="qbdialer__SMSReminder__c" nillable="true" minOccurs="0" type="xsd:boolean"/>
</sequence>
</extension>
</complexContent>
</complexType>


You can compare your XML to verify.  Note that all custom members (fields) end with __c.  Anything without would be a standard field, which Type is.
Dan MDan M
No can do, my "Task" table XML looks a lot different than yours. Most importantly, no "Type" field.

      <xsd:complexType name="Task">
        <xsd:complexContent mixed="false">
          <xsd:extension base="ens:sObject">
            <xsd:sequence>
              <xsd:element minOccurs="0" name="Account" nillable="true" type="ens:Account" />
              <xsd:element minOccurs="0" name="AccountId" nillable="true" type="tns:ID" />
              <xsd:element minOccurs="0" name="ActivityDate" nillable="true" type="xsd:date" />
              <xsd:element minOccurs="0" name="AttachedContentDocuments" nillable="true" type="tns:QueryResult" />
              <xsd:element minOccurs="0" name="Attachments" nillable="true" type="tns:QueryResult" />
              <xsd:element minOccurs="0" name="CallDisposition" nillable="true" type="xsd:string" />
              <xsd:element minOccurs="0" name="CallDurationInSeconds" nillable="true" type="xsd:int" />
              <xsd:element minOccurs="0" name="CallObject" nillable="true" type="xsd:string" />
              <xsd:element minOccurs="0" name="CallType" nillable="true" type="xsd:string" />
              <xsd:element minOccurs="0" name="CombinedAttachments" nillable="true" type="tns:QueryResult" />
              <xsd:element minOccurs="0" name="CreatedBy" nillable="true" type="ens:User" />
              <xsd:element minOccurs="0" name="CreatedById" nillable="true" type="tns:ID" />
              <xsd:element minOccurs="0" name="CreatedDate" nillable="true" type="xsd:dateTime" />
              <xsd:element minOccurs="0" name="Description" nillable="true" type="xsd:string" />
              <xsd:element minOccurs="0" name="FeedSubscriptionsForEntity" nillable="true" type="tns:QueryResult" />
              <xsd:element minOccurs="0" name="Feeds" nillable="true" type="tns:QueryResult" />
              <xsd:element minOccurs="0" name="IsArchived" nillable="true" type="xsd:boolean" />
              <xsd:element minOccurs="0" name="IsClosed" nillable="true" type="xsd:boolean" />
              <xsd:element minOccurs="0" name="IsDeleted" nillable="true" type="xsd:boolean" />
              <xsd:element minOccurs="0" name="IsRecurrence" nillable="true" type="xsd:boolean" />
              <xsd:element minOccurs="0" name="IsReminderSet" nillable="true" type="xsd:boolean" />
              <xsd:element minOccurs="0" name="LastModifiedBy" nillable="true" type="ens:User" />
              <xsd:element minOccurs="0" name="LastModifiedById" nillable="true" type="tns:ID" />
              <xsd:element minOccurs="0" name="LastModifiedDate" nillable="true" type="xsd:dateTime" />
              <xsd:element minOccurs="0" name="Owner" nillable="true" type="ens:sObject" />
              <xsd:element minOccurs="0" name="OwnerId" nillable="true" type="tns:ID" />
              <xsd:element minOccurs="0" name="Priority" nillable="true" type="xsd:string" />
              <xsd:element minOccurs="0" name="RecurrenceActivityId" nillable="true" type="tns:ID" />
              <xsd:element minOccurs="0" name="RecurrenceDayOfMonth" nillable="true" type="xsd:int" />
              <xsd:element minOccurs="0" name="RecurrenceDayOfWeekMask" nillable="true" type="xsd:int" />
              <xsd:element minOccurs="0" name="RecurrenceEndDateOnly" nillable="true" type="xsd:date" />
              <xsd:element minOccurs="0" name="RecurrenceInstance" nillable="true" type="xsd:string" />
              <xsd:element minOccurs="0" name="RecurrenceInterval" nillable="true" type="xsd:int" />
              <xsd:element minOccurs="0" name="RecurrenceMonthOfYear" nillable="true" type="xsd:string" />
              <xsd:element minOccurs="0" name="RecurrenceStartDateOnly" nillable="true" type="xsd:date" />
              <xsd:element minOccurs="0" name="RecurrenceTimeZoneSidKey" nillable="true" type="xsd:string" />
              <xsd:element minOccurs="0" name="RecurrenceType" nillable="true" type="xsd:string" />
              <xsd:element minOccurs="0" name="RecurringTasks" nillable="true" type="tns:QueryResult" />
              <xsd:element minOccurs="0" name="ReminderDateTime" nillable="true" type="xsd:dateTime" />
              <xsd:element minOccurs="0" name="Status" nillable="true" type="xsd:string" />
              <xsd:element minOccurs="0" name="Subject" nillable="true" type="xsd:string" />
              <xsd:element minOccurs="0" name="SystemModstamp" nillable="true" type="xsd:dateTime" />
              <xsd:element minOccurs="0" name="What" nillable="true" type="ens:sObject" />
              <xsd:element minOccurs="0" name="WhatId" nillable="true" type="tns:ID" />
              <xsd:element minOccurs="0" name="Who" nillable="true" type="ens:sObject" />
              <xsd:element minOccurs="0" name="WhoId" nillable="true" type="tns:ID" />
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>

Here-n-nowHere-n-now
Take a look at the Field Level Security of the Task field.  You might have permission removed from all profiles, which would render the field unaccessbile and removed from the WSDL.
Dan MDan M



You are correct. The "Type" field was not visible in field level security. I enabled it and regenerated my WSDL file. Now in my .NET app intellisense shows that "Type" is a member of "Task".

I thought I was in the clear, but I'm not. I used my .NET app to create a task for a case using Type=Call and Status=Completed but in the case, my new task is showing under "Tasks and Events" and not "Call Logs".

Something is still fishy and it aint the clams.

I created a new case manually in the SF webiste 00001062. Then I manually added one task and logged one call. They are seen below as normal under the proper settings. Then I added a task [CREATED IN CODE] thru my .NET app for this case as "Call" and "Completed" and it shows under tasks and events instead of call logs.

Last but not least, I did a SOQL of all tasks for this case and of course there are 3. I did a print of every field and I cannot see what makes the manual logged a call and the one generated thru code different. How is SF making the destinction.



User-added image


User-added image



User-added image

Here are printed data fields for the 3 tasks.


WhatId: 500i000000786t3AAA
Subject: Manually Logged A Call
ActivityDate: 3/27/2014 12:00:00 AM
Status: Completed
Priority: Normal
OwnerId: 005i0000002g6PSAAY
Description: Manually Logged a Call thru the SF website.
IsDeleted: False
IsClosed: True
CreatedDate: 3/27/2014 2:05:11 PM
CreatedById: 005i0000002g6PSAAY
LastModifiedDate: 3/27/2014 2:05:11 PM
LastModifiedBy: 005i0000002g6PSAAY
SystemModStamp: 3/27/2014 2:05:11 PM
IsArchived: False
IsReminder: False
RIsRecurrence: False

WhatId: 500i000000786t3AAA
Subject: CREATED IN CODE AT: 2014-03-27 10:13:46
ActivityDate: 3/27/2014 12:00:00 AM
Status: Completed
Priority: Normal
OwnerId: 005i0000002g6PSAAY
Description: Desc1
IsDeleted: False
IsClosed: True
CreatedDate: 3/27/2014 2:13:09 PM
CreatedById: 005i0000002g6PSAAY
LastModifiedDate: 3/27/2014 2:13:09 PM
LastModifiedBy: 005i0000002g6PSAAY
SystemModStamp: 3/27/2014 2:13:09 PM
IsArchived: False
IsReminder: False
RIsRecurrence: False

WhatId: 500i000000786t3AAA
Subject: Manually created a task thru SF Website
Status: Not Started
Priority: Normal
OwnerId: 005i0000002g6PSAAY
IsDeleted: False
IsClosed: False
CreatedDate: 3/27/2014 2:05:33 PM
CreatedById: 005i0000002g6PSAAY
LastModifiedDate: 3/27/2014 2:05:33 PM
LastModifiedBy: 005i0000002g6PSAAY
SystemModStamp: 3/27/2014 2:05:33 PM
IsArchived: False
IsReminder: False
RIsRecurrence: False

 

Dan MDan M
sorry, there was supposed to be a spaces between the field prints of the three tasks. They got globbed together, seperate them by WHAT ID as the first field. Thanks.
Here-n-nowHere-n-now
Ahh... the joy of Case Feed.  I don't think there's any difference on the task records themselves.  What you see on the UI is the Chatter posts (FeedItem).  If you query the FeedItem with the call log task Id like:
SELECT Type, id, title FROM FeedItem where parentid ='00T5000003EGayB'
you're going to see the Type to be "CallLogPost".  I think that's how it appears different in the case feed.  However I don't know how you can manipulate it though when you inserting tasks.  I'd try catching the FeedItem generated from your inserted task and set the Type to CallLogPost.
Julio HernandezJulio Hernandez
Hi,

I am also having this issue. I am wondering if a solution has been found?

Thanks,
-Julio Hernandez
Om PrakashOm Prakash
Hi,
Only difference is TaskSubtype = 'Call' while creating Task object.
This task will be show as "You logged a call".