Skip to content

feat(integrations): extend Airtable, Google Docs, WhatsApp, and Excel tool depth#5256

Merged
waleedlatif1 merged 10 commits into
stagingfrom
feat/extend-integration-tool-depth
Jun 29, 2026
Merged

feat(integrations): extend Airtable, Google Docs, WhatsApp, and Excel tool depth#5256
waleedlatif1 merged 10 commits into
stagingfrom
feat/extend-integration-tool-depth

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

Deepens four of our most-used integration blocks by adding operations that the underlying APIs support but we didn't expose. Every operation reuses the integration's existing OAuth scopes — no new scopes, so connected users do not need to re-consent. lib/oauth/oauth.ts is untouched.

Driven by production usage analysis: these are high-adoption blocks whose tool coverage was shallow relative to the API surface.

What's added (18 new tools)

Airtable (reuses data.records:write)

  • airtable_delete_records — delete one or many records
  • airtable_upsert_records — upsert via performUpsert.fieldsToMergeOn

Google Docs (reuses drive) — documents.batchUpdate surface

  • google_docs_insert_text, google_docs_replace_text, google_docs_insert_table, google_docs_insert_image, google_docs_insert_page_break, google_docs_update_text_style

WhatsApp (token-based, no OAuth) — outbound beyond plain text

  • whatsapp_send_template, whatsapp_send_media, whatsapp_send_interactive, whatsapp_send_reaction, whatsapp_mark_read

Microsoft Excel (reuses Files.ReadWrite) — Graph workbook ops

  • microsoft_excel_clear_range, microsoft_excel_format_range, microsoft_excel_create_table, microsoft_excel_sort_range, microsoft_excel_delete_worksheet

Notes

  • Each new tool is wired into its block's operation dropdown with conditioned subBlocks; type coercions live in tools.config.params (execution-time), never in tools.config.tool.
  • Request/response shapes were verified against each provider's live API docs.
  • Excel ops are added to both microsoft_excel and microsoft_excel_v2.

Validation

  • bunx tsc --noEmit: clean across all changed files
  • bunx biome check: clean (34 files)
  • bun run check:api-validation: passed

@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped Jun 29, 2026 5:06am

Request Review

@cursor

cursor Bot commented Jun 29, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Mostly additive tools and documentation; medium risk from new delete/upsert and outbound messaging paths that can mutate external data, plus broad webhook trigger surface area.

Overview
Expands Airtable, Google Docs, WhatsApp, and Microsoft Excel blocks with new operations and matching docs, without new OAuth scopes. Airtable adds upsert and bulk delete; Google Docs adds insert/replace, tables, images, page breaks, and text styling; WhatsApp adds an operation selector for templates, media, interactive messages, reactions, and mark-read; Excel (legacy and v2) adds clear, format, create table, sort, and delete worksheet, with shared param coercion helpers on the block side.

Docs and UI catch up across the board: new Twilio integration page (SMS/status triggers) and twilio in the integrations nav; Clerk, incident.io, Loops, RevenueCat, Rootly, and Sentry gain large Triggers sections; UptimeRobot renames monitor timeout to checkTimeout and drops autoAddMonitors from maintenance-window update docs. Adds an A2A SVG icon in docs icons.

Reviewed by Cursor Bugbot for commit b83b804. Configure here.

Comment thread apps/sim/tools/google_docs/update-text-style.ts Outdated
Comment thread apps/sim/tools/google_docs/update-text-style.ts
Comment thread apps/sim/tools/google_docs/replace-text.ts
Comment thread apps/sim/blocks/blocks/microsoft_excel.ts
@greptile-apps

greptile-apps Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR expands several integration blocks with deeper provider operations. The main changes are:

  • New Airtable tools for deleting and upserting records.
  • New Google Docs tools for batch document edits.
  • New WhatsApp tools for templates, media, interactive messages, reactions, and read status.
  • New Microsoft Excel tools for clearing, formatting, table creation, sorting, and worksheet deletion.
  • Updated integration docs and tool registrations.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
apps/sim/tools/microsoft_excel/utils.ts Adds shared escaping for Microsoft Graph OData key literals and worksheet range URL construction.
apps/sim/tools/microsoft_excel/delete_worksheet.ts Adds the Excel worksheet deletion tool with escaped worksheet-name URL construction.
apps/sim/tools/microsoft_excel/sort_range.ts Adds range and table sorting for Excel workbooks, including escaped table-name URL construction.
apps/sim/tools/google_docs/update-text-style.ts Adds Google Docs text style updates with the corrected fontSize field mask.
apps/sim/tools/airtable/delete_records.ts Adds Airtable record deletion with local request-size validation.
apps/sim/tools/airtable/upsert_records.ts Adds Airtable upsert support with merge-field and record-count validation.

Reviews (7): Last reviewed commit: "fix(airtable): coerce upsert fieldsToMer..." | Re-trigger Greptile

Comment thread apps/sim/tools/microsoft_excel/utils.ts Outdated
Comment thread apps/sim/tools/microsoft_excel/delete_worksheet.ts Outdated
Comment thread apps/sim/tools/microsoft_excel/sort_range.ts Outdated
Comment thread apps/sim/tools/google_docs/update-text-style.ts Outdated
Comment thread apps/sim/tools/airtable/delete_records.ts Outdated
Comment thread apps/sim/tools/airtable/upsert_records.ts Outdated
- google-docs: use camelCase fontSize field mask; normalize string booleans for bold/italic/underline and matchCase
- microsoft-excel: escape OData single quotes in worksheet/table keys; validate range for clear/format
- airtable: enforce batch limits (delete <=10 ids, upsert <=10 records and 1-3 merge fields) with clear errors
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile review

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

Comment thread apps/sim/blocks/blocks/airtable.ts
Comment thread apps/sim/tools/microsoft_excel/format_range.ts
- airtable: coerce upsert typecast as string-aware boolean (string "false" no longer truthy)
- microsoft-excel: format_range surfaces precise partial-state error when fill PATCH fails after font (no atomic font+fill endpoint in Graph)
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile review

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

Comment thread apps/sim/tools/whatsapp/mark_read.ts
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile review

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

Comment thread apps/sim/blocks/blocks/whatsapp.ts
Comment thread apps/sim/blocks/blocks/microsoft_excel.ts
Comment thread apps/sim/tools/airtable/delete_records.ts Outdated
- google-docs: align manualDocumentId condition with the document selector so the documentId canonical group has matching conditions (fixes canonical-pair block test / build)
- microsoft-excel: describe fill/font color as hex code only (Graph does not reliably accept named colors)
- remove verbose explanatory inline comments from new tools (keep idiomatic section dividers)
- regenerate integration docs + integrations.json catalog from the block registry
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile review

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

Comment thread apps/sim/blocks/blocks/microsoft_excel.ts Outdated
…lumn validation

- airtable: coerce recordIds entries via String() so numeric JSON values don't crash on .trim()
- microsoft-excel: drop the silent sortColumn default to 0 so invalid input surfaces the tool's clear validation error (both v1 and v2 blocks)
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile review

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

Comment thread apps/sim/tools/airtable/upsert_records.ts Outdated
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile review

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit b83b804. Configure here.

@waleedlatif1 waleedlatif1 merged commit d878f15 into staging Jun 29, 2026
16 checks passed
@waleedlatif1 waleedlatif1 deleted the feat/extend-integration-tool-depth branch June 29, 2026 05:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant