1

EDIT

*For clarity, this is not a question of how to ensure Archived records are retrieved in a query. It is a matter of ensuring I, as an admin, am providing access to the field isArchive (so even on non-archived fields), if that's something an admin can configure through permission sets, profiles, or any other user settings.* If not, is this Read only across the board? Available to anybody who queries all fields on a record?


Someone, on behalf of a third party system that grabs fields from the Task object, let us know that they weren't able to pull the field Task.isArchived (one part of the system they manage could, so they know it's missing, and another part with the same profile could not. I realize this is pretty vague, but it's just background for now).

I myself was not very familiar with this field, and realized I could query for it with apex anonymous queries, but as sys. admin can't see it as a "field" proper on the Task object, which makes me think this isn't exactly a field, but maybe something lower level to Salesforce?

I am trying to troubleshoot their issue and want to start by understanding the nature of this field. Since it's not something that i can just see as a field directly on Task to look at permissions, is this something that a permission set allows, to see if a record is "Archived"? Or some other user setting, perhaps? Something else?

What is an archived record anyway? Looking for as much as I can get on this! I have looked for documentation and couldn't really find anything, so feel free to direct me to something that exists already if I missed it.

1 Answer 1

2

Usually the first step is to go into Setup --> Object Manager --> Task and check if the IsArchived field is there so you can change field-level security. It's not.

The second thing to check, in case you believe it needs to be done by permission set, is within the field itself in the metadata. I like to check this on Workbench. If you click on Info --> Standard & Custom Objects

Select Task and expand on Fields

enter image description here

Click on IsArchived

enter image description here

The attribute you're looking for is permissionable. Looking at documentation

If you’re using a field whose permissionable property is false (such as any of the field types listed in this section), you can’t query, insert, update, or delete any field permissions records, because none exist

This, coupled with the fact you can't find this field on the UI to even give permissions per profile leads me to believe it's simply a read-only field by default. You shouldn't have any action to take to give anyone the ability to see it.


Some background on Archived Activities. Salesforce does this to Tasks and Events that are over a year old.

Activity archive criteria:

  • Events with an ActivityDateTime or ActivityDate value greater than or equal to 365 days old
  • Tasks with an IsClosed value of true and an ActivityDate value greater than or equal to 365 days old
  • Tasks with an IsClosed value of true, a blank ActivityDate field, and a create date greater than or equal to 365 days ago

It'd be interesting in how they're pulling the information as there's way to query that include Archived Activities and ways that do not. For example, utilizing queryAll() vs. query() through the SOAP API.

There's even a Knowledge Article about how to export archived activities through dataloader that's not necessarily relevant to your specific use case, but shows it matters how you go about pulling records to get that field vs. being able to give access to it.

5
  • Thank you - this helps! They use a 3rd party integration which, from what I've seen, just has a generic "pull fields" kinda functionality so I've got extremely limited visibility to how it actually gets the field, something I've been struggling with a lot in troubleshooting, and I was hoping understanding how visibility is set to this field would help. From what it sounds like, it sounds like it is visible to anybody at all and does not have restrictions, as long as it's pulling it the correct way? I just want to confirm that permissions do not, in fact, play a role. Jan 30, 2020 at 17:47
  • Oh - actually, Kris, I think this may not quite help my question. It sounds like you're responding to how to include Archived tasks in a query. This is not quite the case. They want to access the field itself on a task (isArchive, so even on non-archived tasks), not specifically to include archived records. Does that make sense? Is this field able to be toggled for permissions? Jan 30, 2020 at 17:52
  • 1
    My mistake. I kind of touched on it with the "read only" field part, but I was coming at it from a querying perspective. I've edited in the top section to be specific to access. Jan 31, 2020 at 13:14
  • Agreed that the question of how they are pulling the information is important here. Get info on the precise API calls they are making.
    – Charles T
    Jan 31, 2020 at 13:36
  • Thank you!!! I don't have any way to know how they're calling it, and the person I'm working with is the owner of that system, so this is a perfect response to my question to at least support that I've done everything in my power, and they need to look more into their end. I wanted to ensure I did my due diligence, and this supports that. Thank you a million! Also, I didn't know about that attribute list. That is AMAZING knowledge to tack on for future reference :) Jan 31, 2020 at 21:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .