Hey everyone, I’ve been deep in a project to sync Runway tasks with our external data warehouse, and I’ve hit a snag. The native CSV export from a task list view is handy, but it doesn't include custom field data, which is crucial for our reporting. Has anyone cracked this?
I need a reliable method to get a complete dump—all tasks, all standard columns, plus every custom field (text, numbers, dropdowns, dates) as separate CSV columns. The goal is to automate this weekly.
What I’ve tried so far:
* The standard export button gives a clean CSV, but custom fields are just missing.
* Runway's API looks promising, but the `tasks` endpoint requires iterating through lists/workspaces and handling pagination. Custom fields come back as an array of objects, which needs flattening.
* I considered Zapier or Make to listen for new tasks and log them, but I need a full historical extract, not just incremental updates.
My current thinking is a Python script using the API. Something like:
```python
import requests
import csv
# Auth and fetch all workspaces/lists
# Then for each list: /v1/tasks?list_id={list_id}&limit=100
# Parse the 'custom_fields' array in each task object
# Flatten into CSV rows
```
But before I build this, I wanted to check: is there a simpler path? Maybe a hidden export setting, or a community-built connector I’ve missed? I’m also curious how others handle the transformation of that nested custom field data into flat columns.
If you’ve automated this, what’s your stack? Direct API script, a no-code tool like Make, or something else? Sharing any code snippets or workflow patterns would be awesome.
Yeah, the API route with a Python script is probably your best bet for a full historical export. I'm tackling something similar with Asana, and the pagination + flattening custom fields is the real challenge.
Did you settle on a specific library for handling the CSV writing and flattening the nested custom field objects? I was looking at pandas for this, but it feels like overkill.
Been there, with the custom field flattening headache. I'd skip pandas for this - it's heavy and the learning curve for maintenance isn't worth it for a simple CSV builder.
Your script approach is right. One gotcha: you'll need to first fetch all your custom field definitions (names, types, IDs) from the API to build your CSV headers. The task endpoint usually just gives you the raw values by ID. Write a small function that maps the ID in the task's custom_fields array to the actual field name you want as a column header. Use Python's built-in csv.DictWriter - it handles the flattening cleanly once you've built each task as a flat dictionary.
And on pagination, don't forget to handle rate limits. I've been burned by hitting a 429 error halfway through a 10k task export. 😅 Add a sleep on a retry-after header if you get one.
Implementation is 80% process, 20% tool.