Skip to content
Notifications
Clear all

How do I pull a list of all open tasks across all frameworks? The UI hides it.

6 Posts
6 Users
0 Reactions
3 Views
(@kellyd)
Trusted Member
Joined: 1 week ago
Posts: 40
Topic starter   [#7289]

Hey everyone! I'm pretty new to Drata (we onboarded about a month ago to help streamline our SOC 2 prep) and I'm *loving* the automation features so far. It's been a game-changer for evidence collection.

But I've hit a snag that's driving me a bit nuts, and I'm wondering if I'm just missing something obvious. I'm trying to get a single, unified view of all the open tasks we have across all the frameworks we're managing (SOC 2, ISO 27001, and a custom one). In the main dashboard and the 'Tasks' section, it seems like I can only view tasks filtered by *one* framework at a time, or by person, or by due date. What I really want is a master listβ€”like, "here's every single thing our team needs to do, regardless of which compliance program it's for."

I've clicked around everywhere! The UI feels like it's hiding this view on purpose, maybe to avoid overwhelming people? But as the project manager, I need that comprehensive picture to prioritize and assign work effectively. I'm constantly having to toggle between frameworks and mentally stitch together the lists, which is super inefficient.

So my big question is: how are you all handling this? Is there a secret report or an export function I haven't found yet that dumps all open tasks into a CSV or something? Or is the intended workflow really to live inside each framework separately? I'm also curious how this compares to other GRC platforms you might have usedβ€”did Vanta or Tugboat Logic handle this kind of cross-framework task list better?

Any tips or workarounds would be hugely appreciated. I feel like I must be overlooking a simple button somewhere 😅. Thanks in advance for the wisdom!



   
Quote
(@harperk)
Reputable Member
Joined: 1 week ago
Posts: 144
 

Ah, the classic "master list" struggle. I think you're right, the UI is absolutely designed to compartmentalize by framework, probably to keep the sales demos looking clean.

You won't find a built-in view for that. The workaround is using the reporting export. Go to Reports, create a custom report for Tasks, and in the filters just... don't select any framework. Leave that field completely blank. It'll dump every single task into a CSV. It's clunky and you'll have to re-export it, but it's the only way I've found to see the whole ugly panorama.

Just wait until you need to do this for overdue tasks across frameworks but filtered by a specific person. That's when you really start to question your life choices.


Data over dogma.


   
ReplyQuote
(@backend_perf_guru)
Estimable Member
Joined: 5 months ago
Posts: 155
 

The export latency is what kills me. We have over 3,000 active controls, and generating that "unfiltered" CSV report takes upwards of 90 seconds, only to fail half the time if someone else triggers a concurrent export. It's a classic N+1 query problem disguised as a feature.

Your point about filtering by a person across frameworks is spot on. The underlying relational model clearly supports it, but the API they expose for reports doesn't. I had to script around it using their raw GraphQL endpoint, which does allow compound filters the UI hides. A simple query like `task(where: {framework: {is: null}, assignee: {id: {eq: "xyz"}}})` works perfectly there.

So the real workaround isn't the UI export, it's bypassing it entirely.


--perf


   
ReplyQuote
(@garethp)
Trusted Member
Joined: 1 week ago
Posts: 39
 

You're absolutely right about bypassing the UI export being the key. Your GraphQL example is the correct approach, but it's important to warn about the pagination.

Their GraphQL endpoint, like most, will have a default limit, often 100 nodes. You'll need to handle pagination explicitly using the `pageInfo` object and `after` cursor in your script, otherwise you'll only get the first page of results. This is easy to miss and leads to incomplete data, which is just as problematic as the slow CSV.

The 90-second export and failure under concurrency you described points to a backend service that isn't materializing those complex joins efficiently. Direct GraphQL queries shift that computational load to your client and are inherently more stable for large datasets, though you do need to manage the rate limiting.


Plan the exit before entry.


   
ReplyQuote
(@j_carter)
Estimable Member
Joined: 4 months ago
Posts: 113
 

I completely get the need for that master list. I hit the same wall a few weeks ago. It's frustrating because you need that complete view to plan.

The CSV export workaround mentioned above does technically work, but the real issue I found is that it pulls in *all* tasks, even closed ones from months ago. So you're stuck manually filtering the exported data every time, which defeats the purpose of a quick snapshot.

Have you tried creating a custom dashboard widget? I'm still experimenting, but you can sometimes piece together a view by adding multiple 'task by framework' widgets side by side. It's not a single list, but it's faster than toggling.


Migration is never smooth.


   
ReplyQuote
(@integration_tinkerer)
Estimable Member
Joined: 3 months ago
Posts: 104
 

> it seems like I can only view tasks filtered by *one* framework at a time

Yep, that's the wall we all hit. The UI is aggressively partitioned, which is great for individual contributors but terrible for program leads.

The custom report export is the official path, but like others hinted, it's slow and dirty. For a truly live, filterable view, you have to go external. I built a quick Make (formerly Integromat) scenario that polls the Drata GraphQL endpoint every hour. It fetches all open tasks, handles the pagination automatically, and drops the list into a Google Sheet.

Here's the gist of the GraphQL filter I use in Make:

```graphql
query {
tasks(where: {status: {eq: "open"}}, first: 100) {
nodes {
title
framework { name }
assignee { firstName lastName }
dueDate
}
pageInfo { endCursor hasNextPage }
}
}
```

The trick is the loop module to follow `pageInfo.hasNextPage` using the `endCursor` as the `after` variable. This gives you a real-time-ish master list you can sort and filter in Sheets, and it bypasses the UI limits entirely. It takes 20 minutes to set up and runs in the background.



   
ReplyQuote