Skip to main content
Connect Google Sheets once, then provision a log a row action as a skill. The agent collects fields from the caller and appends a row to the tab you choose — a lead log, an order record, a callback list. Mapping is config, not code.

Connect

Google Sheets uses OAuth. Begin the connect, then finish consent in a browser.
curl -X POST https://builder.flowyte.com/api/v1/integrations/google_sheets/connect \
  -H "Authorization: Bearer flowyte_sk_…"
# → { "data": { "oauthUrl": "https://…" } }   # open this in a browser to grant access
The browser-only callback completes the connection; it cannot be finished with an API key. After consent, GET /integrations lists google_sheets as connected.

Resolve the target sheet

Before you map columns, confirm the connected account can read the spreadsheet. Pass a Sheets URL or bare id as ref and get back the title, its tabs, and each tab’s header row — so you map captured params to the real column names.
curl -G https://builder.flowyte.com/api/v1/integrations/google_sheets/spreadsheet \
  -H "Authorization: Bearer flowyte_sk_…" \
  --data-urlencode "ref=https://docs.google.com/spreadsheets/d/SHEET_ID/edit"
This read-only helper uses only the granted spreadsheet scope. A 409 integration_not_connected means Sheets isn’t connected; a 404 sheet_not_accessible means the link is wrong or the file isn’t shared with the connected account.

Provision the skill

List the actions, then provision onto an agent. The column mapping is part of the skill’s config — finish it in the dashboard if the action lands as a draft.
curl https://builder.flowyte.com/api/v1/integrations/google_sheets/actions \
  -H "Authorization: Bearer flowyte_sk_…"

curl -X POST \
  https://builder.flowyte.com/api/v1/agents/AGENT_ID/integrations/google_sheets/provision \
  -H "Authorization: Bearer flowyte_sk_…" \
  -H "Content-Type: application/json" \
  -d '{ "actions": ["append_row"] }'

In the API

ActionEndpointScope
ConnectPOST /integrations/google_sheets/connectintegrations:write
Resolve a sheetGET /integrations/google_sheets/spreadsheet?ref=…integrations:read
List actionsGET /integrations/google_sheets/actionsintegrations:read
Provision skillsPOST /agents/{agentId}/integrations/google_sheets/provisionskills:write
Remove skillsDELETE /agents/{agentId}/integrations/google_sheets/provisionskills:write
DisconnectDELETE /integrations/google_sheetsintegrations:write
Provisioning edits the draft. Publish so live calls write rows.