Log every VideoAsk response to a Google Sheet

By General Input

Mirror every new VideoAsk answer into a searchable Google Sheet, one row per question, so your team never has to open the VideoAsk inbox to read replies.

Integrations

  • VideoAsk
  • Google Sheets

Type

Deterministic Code

Categories

  • Operations
  • Product

Build me a code workflow that runs on a cron every hour and mirrors every new VideoAsk response into a Google Sheet response log, so my team has a searchable, exportable record of every reply without having to open the VideoAsk inbox.

Trigger: cron, hourly.

Inputs I want to configure on the workflow: the destination Google spreadsheet ID, the response-log tab name (default "VideoAsk Responses"), and a small metadata tab name (default "_sync_state") used to track the last processed contact per form.

Steps:

1. Call VideoAsk List Forms to enumerate every form in the authenticated organization. Paginate with limit and offset until fewer than limit items come back.

2. Read the _sync_state tab in the target Google Sheet using Get Values. This tab holds two columns: form_id and last_contact_id (the id of the most recent contact we appended for that form). Build an in-memory map from those rows.

3. For each form, call VideoAsk List Form Contacts with include_answers=true and paginate with limit and offset. Stop paginating once you hit the last_contact_id from the state map for that form (or run out of pages if this is the first sync). Sort contacts oldest to newest before flattening so the state map ends up on the newest one.

4. For each new contact, flatten one row per answer with these columns in order: sync_timestamp, form_id, form_title, contact_id, contact_name, contact_email, contact_status (completed or dropped_out), question_id, question_title, answer_type, transcription (or text answer), media_url, answered_at.

5. If there are new rows, call Google Sheets Append Values on the response-log tab with valueInputOption USER_ENTERED. On the very first run (empty tab), prepend a header row with the column names above.

6. Update the _sync_state tab with the new last_contact_id per form. Use Append Values plus a dedupe read, or clear + rewrite the small state tab. Whatever is simplest and idempotent.

Requirements: this is a deterministic pipeline, no LLM summarization or scoring. Handle VideoAsk 429s with exponential backoff. Handle Google Sheets 429/503 with exponential backoff. If a form has zero new contacts, skip it silently. Log a one-line summary at the end: total forms scanned, total new contacts, total rows appended.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seatsBuild audience segments from product usage and push to LoopsTurn the people who engage with your posts into Pipedrive leads