feat(salesforce): add Salesforce CRM integration#270
feat(salesforce): add Salesforce CRM integration#270Shubhank-Jonnada wants to merge 6 commits intomasterfrom
Conversation
All action handler execute() methods in integration-google-chat and integration-google-sheets were returning plain dicts. Wrapped every return value in ActionResult(data=..., cost_usd=0.0) to match the expected SDK pattern used across other integrations.
…esult All action handler execute() methods in integration-youtube and integration-google-business-profile now return ActionResult(data=..., cost_usd=0.0) instead of plain dicts, conforming to the SDK contract.
- 7 actions: search_records, get_record, update_record, list_tasks, list_events, get_task_summary, get_event_summary - OAuth 2.0 platform auth, instance_url resolved from context.metadata - 56 pytest unit tests, zero credentials required - Real Salesforce logo icon (512x512) - README with auth setup, actions table, troubleshooting
🔍 Integration Validation ResultsCommit: Changed directories:
❌ Structure Check output❌ Code Check output
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 04e818f204
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| config_path = os.path.join(os.path.dirname(__file__), "config.json") | ||
| shotstack = Integration.load(config_path) |
There was a problem hiding this comment.
Add Shotstack config before loading integration
Integration.load(config_path) is executed at import time, but this commit does not add shotstack/config.json, so importing shotstack/shotstack.py will fail immediately (for example with file-not-found) before any action can run. This makes the newly added Shotstack module non-functional unless the config file is added (or loading is deferred/guarded).
Useful? React with 👍 / 👎.
Summary
Adds a brand new Salesforce CRM integration covering the core use cases of searching/updating records and summarising task & event activity.
Actions (7)
search_recordsget_recordupdate_recordlist_taskslist_eventsget_task_summaryget_event_summaryAuth
platformauth type)instance_urlresolved fromcontext.metadata— Salesforce returns this at token time and the platform stores it separately from credentialsTests
pytest -m unit)pytest -m integration)Test plan
pytest salesforce/tests/test_salesforce_unit.py -v— all 56 passpython autohive-integrations-tooling/scripts/validate_integration.py salesforce— no errorspython autohive-integrations-tooling/scripts/check_code.py salesforce— no errorssearch_recordswithSELECT Id, Name FROM Contact LIMIT 5list_tasksandlist_eventswith no filtersget_task_summary/get_event_summarywith a valid ID