diff --git a/packages/backend/src/apps/vtiger-crm/triggers/index.js b/packages/backend/src/apps/vtiger-crm/triggers/index.js index 1e81b4b1..2d82ec9d 100644 --- a/packages/backend/src/apps/vtiger-crm/triggers/index.js +++ b/packages/backend/src/apps/vtiger-crm/triggers/index.js @@ -2,5 +2,6 @@ import newCases from './new-cases/index.js'; import newContacts from './new-contacts/index.js'; import newInvoices from './new-invoices/index.js'; import newLeads from './new-leads/index.js'; +import newOpportunities from './new-opportunities/index.js'; -export default [newCases, newContacts, newInvoices, newLeads]; +export default [newCases, newContacts, newInvoices, newLeads, newOpportunities]; diff --git a/packages/backend/src/apps/vtiger-crm/triggers/new-opportunities/index.js b/packages/backend/src/apps/vtiger-crm/triggers/new-opportunities/index.js new file mode 100644 index 00000000..161cf840 --- /dev/null +++ b/packages/backend/src/apps/vtiger-crm/triggers/new-opportunities/index.js @@ -0,0 +1,41 @@ +import defineTrigger from '../../../../helpers/define-trigger.js'; + +export default defineTrigger({ + name: 'New opportunities', + key: 'newOpportunities', + pollInterval: 15, + description: 'Triggers when a new opportunity is created.', + + async run($) { + let offset = 0; + const limit = 100; + let hasMore = true; + + const params = { + operation: 'query', + sessionName: $.auth.data.sessionName, + query: `SELECT * FROM Potentials ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, + }; + + do { + const { data } = await $.http.get('/webservice.php', { + params, + }); + offset = limit + offset; + + if (!data?.result?.length) { + hasMore = false; + return; + } + + for (const item of data.result) { + $.pushTriggerItem({ + raw: item, + meta: { + internalId: item.id, + }, + }); + } + } while (hasMore); + }, +}); diff --git a/packages/docs/pages/apps/vtiger-crm/triggers.md b/packages/docs/pages/apps/vtiger-crm/triggers.md index 0f2e5476..3b7fa35e 100644 --- a/packages/docs/pages/apps/vtiger-crm/triggers.md +++ b/packages/docs/pages/apps/vtiger-crm/triggers.md @@ -9,6 +9,8 @@ items: desc: Triggers when a new invoice is created. - name: New leads desc: Triggers when a new lead is created. + - name: New opportunities + desc: Triggers when a new opportunity is created. ---