Quick updates on my previous points:
-
Export button — I initially reported that the Export button was crashing RTILA X. After investigating, I found that the crash was not caused by the software itself, but by an invalid data format in the data field of the Google Sheets step (and possibly the read_project_dataset step). When the expected format is not respected, the Export button crashes. Once I used a valid format, the Export button worked correctly. 
-
Manual stop treated as failure — Still observing this, but it’s lower priority for now.
Now, the main issue I need help with: Google Sheets integration in a trigger chain.
My goal is simple: run a project → read the extracted dataset → append the data to Google Sheets.
Here’s my current trigger chain (3 steps):
| Step |
Type |
output_variable_name |
Notes |
| 0 |
launch_project |
launch_project_3_queue_id |
wait_for_completion: true |
| 1 |
read_project_dataset |
read_project_dataset_2_records |
Reads 307 records with fields url and page_source |
| 2 |
google_sheets |
google_sheets_3_cell_value |
Operation: append_row — this step fails |
Steps 0 and 1 work perfectly. The project runs to completion, and read_project_dataset returns 307 records. I can see the data in the run record — URLs and page sources are all there.
Step 2 (Google Sheets) fails every time.
What I’ve tried for the data field in the Google Sheets step:
The documentation in the Builder says:
“Data — The data for append or update operations. For append_row, pass a list of values (e.g., ["value1", "value2"]). Supports {variable} substitution. Placeholder: e.g., {dataset} or ["{nombre}", "{precio}"]”
Based on this documentation, I tried all of the following:
| Attempt |
data value |
Result |
Export |
| 1 |
{read_project_dataset_2_records} |
Trigger chain fails |
Export crashes |
| 2 |
[{read_project_dataset_2_records}] |
Trigger chain fails |
Export crashes |
| 3 |
["{url}", "{page_source}"] |
Trigger chain fails |
Export crashes |
| 4 |
"data": ["${url}", "${page_source}"] |
Trigger chain fails |
Export crashes |
| 5 |
["${url}", "${page_source}"] |
Trigger chain fails |
Export crashes |
| 6 |
["url", "page_source"] |
Succeeds, but writes literal strings “url” and “page_source” to Google Sheets — not the actual data |
Export works |
Attempts 1–5 follow the documentation examples, but none of them work. Attempt 6 succeeds but only sends static field names instead of actual values. The Export button was also crashing during attempts 1–5, and only started working again with attempt 6 — confirming that the crash was caused by the invalid data format, not by the software itself.
The actual error (captured via terminal spy mode):
I ran RTILA from the terminal to capture the engine output. Here’s the exact error when using {read_project_dataset_2_records} as the data value:
Error: Google API Error: Invalid value at 'data.values[0]' (type.googleapis.com/google.protobuf.ListValue), "[[{'url': 'www.instagram.com/ldlc/p/DdWAIfUlnCu/', 'page_source': 'https://www.ledemondujeu.com/concours-instagram-1.html'}, {'url': 'www.instagram.com/campinginternationalgiens/p/Dc1TG2Rjw9J/', 'page_source': 'https://www.ledemondujeu.com/concours-instagram-1.html'}, ...]]"
What’s happening: The read_project_dataset step produces an array of objects (dicts):
python
[
{'url': 'www.instagram.com/...', 'page_source': 'https://www.ledemondujeu.com/...'},
{'url': 'www.instagram.com/...', 'page_source': 'https://www.ledemondujeu.com/...'},
...
]
But the Google Sheets API expects a list of lists (rows of simple values):
python
[
["www.instagram.com/...", "https://www.ledemondujeu.com/..."],
["www.instagram.com/...", "https://www.ledemondujeu.com/..."],
...
]
So the data format from read_project_dataset is incompatible with what the google_sheets append_row operation expects.
Additional observation:
When the data field contains {read_project_dataset_2_records}, the engine also logs this warning about the gcp_credentials_json field:
Warning: Unresolved variable placeholder: { "type": "service_account", ... } — this will be passed as literal text.
Available keys: [name, _dataset_fields, launch_project_3_queue_id, read_project_dataset_2_records]
It seems the engine interprets the { in the JSON credentials as a variable placeholder. This doesn’t block authentication (the credentials are passed through), but it’s worth noting.