diff --git a/packages/backend/src/apps/salesforce/actions/execute-query/index.ts b/packages/backend/src/apps/salesforce/actions/execute-query/index.ts new file mode 100644 index 00000000..8d0a6780 --- /dev/null +++ b/packages/backend/src/apps/salesforce/actions/execute-query/index.ts @@ -0,0 +1,31 @@ +import defineAction from '../../../../helpers/define-action'; + +export default defineAction({ + name: 'Execute query', + key: 'executeQuery', + description: 'Executes a SOQL query in Salesforce.', + arguments: [ + { + label: 'Query', + key: 'query', + type: 'string' as const, + required: true, + description: + 'Salesforce query string. For example: SELECT Id, Name FROM Account', + variables: true, + }, + ], + + async run($) { + const query = $.step.parameters.query as string; + + const options = { + params: { + q: query, + }, + }; + + const { data } = await $.http.get('/services/data/v56.0/query', options); + $.setActionItem({ raw: data }); + }, +}); diff --git a/packages/backend/src/apps/salesforce/actions/index.ts b/packages/backend/src/apps/salesforce/actions/index.ts index dd8a7ab1..58ec0b70 100644 --- a/packages/backend/src/apps/salesforce/actions/index.ts +++ b/packages/backend/src/apps/salesforce/actions/index.ts @@ -1,4 +1,5 @@ -import findRecord from './find-record'; import createAttachment from './create-attachment'; +import executeQuery from './execute-query'; +import findRecord from './find-record'; -export default [findRecord, createAttachment]; +export default [findRecord, createAttachment, executeQuery];