fix(loops): align integration with live API docs, add suppression + get-template tools#5358
Conversation
…et-template tools - fix list_transactional_emails endpoint URL (was /transactional, now /transactional-emails) - fix response fields to match actual API schema (createdAt/updatedAt, not the never-existent lastUpdated) - add loops_check_contact_suppression, loops_remove_contact_suppression, loops_get_transactional_email tools - wire new tools into block operations, outputs, and registries - alphabetize tools/registry.ts loops entries
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview List transactional emails now calls Three new block operations and tools: Check Contact Suppression and Remove Contact Suppression (email or user ID, quota fields on responses), and Get Transactional Email by template ID. The Loops block dropdown, param mapping, outputs, registry, and a manage-suppression-compliance skill template are wired for these. Reviewed by Cursor Bugbot for commit bf5c0d5. Configure here. |
- add missing contactId block output for check_contact_suppression (Greptile P1) - fix list_transactional_emails description to mention createdAt (Greptile P2)
|
@greptile review |
|
@cursor review |
There was a problem hiding this comment.
✅ 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 7c49c26. Configure here.
…nsactional_emails Final validation pass found that /api/v1/transactional (the endpoint this tool used before this PR) is a real, functional, deprecated Loops endpoint whose schema genuinely returns lastUpdated - it was not a broken/invented field. Migrating to /api/v1/transactional-emails is still correct (current endpoint, better error semantics), but dropping lastUpdated would break any existing workflow reading it from this block's output. Keep it as a deprecated alias of updatedAt alongside the new createdAt/updatedAt fields.
|
@greptile review |
|
@cursor review |
There was a problem hiding this comment.
✅ 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 57014a3. Configure here.
|
@greptile review |
|
@cursor review |
There was a problem hiding this comment.
✅ 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 bf5c0d5. Configure here.
Summary
loops_list_transactional_emailsendpoint URL — was hitting/api/v1/transactional(the send endpoint), corrected to the documented/api/v1/transactional-emailslist endpointcreatedAt/updatedAt) — the previouslastUpdatedfield never existed in Loops' API and was alwaysundefinedloops_check_contact_suppression,loops_remove_contact_suppression,loops_get_transactional_emailtools.access,tools.config, and outputstools/registry.tsType of Change
Testing
Validated every tool and the block against Loops' live OpenAPI spec (
app.loops.so/openapi.yaml) via independent verification passes. Typecheck and lint clean.Checklist