Outcome

Salesforce

Execute a read-only SOQL query against Salesforce via the REST API

Salesforce logo

Salesforce

Execute a read-only SOQL query against Salesforce via the REST API

OAuth2 Streaming + One-shot

Salesforce is where your revenue data lives. Delphi connects via OAuth2, queries your org through SOQL and the REST API, and turns pipeline, accounts, and forecast data into answers your team can act on. Read-only by default, with every query audit-logged and scoped to the dashboards each user is permitted to see.

What you can ask Delphi

  • Which accounts have opportunities stalled in Negotiation for more than 30 days?
  • Show me the top 20 closed-won deals this quarter with their owners and amounts
  • Compare pipeline coverage for the EMEA region versus last quarter
  • Which reps have the highest average deal size in the last 90 days?

Use cases

Pipeline health monitoring

Delphi watches your Salesforce pipeline and surfaces stalled deals, coverage gaps, and forecast risks in natural language — no more hand-built dashboards.

Territory performance analysis

Ask Delphi to compare territories, rep performance, or product lines across any time window. It joins Salesforce data with the rest of your business context automatically.

Technical details

Authentication
Method: OAuth2
Required scopes:
  • api
  • refresh_token
Ingestion
Mode: Streaming + One-shot
Cadence: Real-time query or 5-minute polling
Tools exposed (2)
enterprise/query_salesforce

Execute a read-only SOQL query against Salesforce via the REST API. Returns CRM records: Opportunities, Accounts, Contacts, Leads, Forecasts, etc. Automatically handles OAuth2 authentication and pagination. Use for sales pipeline analysis, customer data, account health, and CRM reporting.

upsert_bento_stream_salesforce

Create or update a recurring Salesforce data connector that polls for changed records using SystemModstamp filtering. Streams changed CRM records (Opportunities, Accounts, Contacts, etc.) into Kafka via OAuth2 client credentials auth. Use this to keep Delphi dashboards in sync with live Salesforce data.

Inputs

enterprise/query_salesforce

Name Type Required Description
dashboardId string no Target dashboard/initiative ID. Omit to use the current dashboard.
soqlQuery string yes SOQL SELECT query to execute. Read-only: no UPDATE, DELETE, INSERT, UPSERT, or MERGE. Examples: "SELECT Id, Name, Amount, StageName, CloseDate FROM Opportunity WHERE StageName = 'Closed Won' AND CloseDate = THIS_QUARTER" "SELECT Id, Name, Industry, AnnualRevenue FROM Account WHERE AnnualRevenue > 1000000" "SELECT Id, Name, Email, AccountId FROM Contact LIMIT 200"
objectType string no Primary Salesforce object being queried — helps the agent understand the data context. Examples: "Opportunity" for pipeline data, "Account" for customer data, "Contact" for people.
Opportunity Account Contact Lead Forecast Campaign Task Event Custom
maxRecords number no Max records to return across paginated results. Default: 200.

upsert_bento_stream_salesforce

Name Type Required Description
dashboardId string no Target dashboard/initiative ID. Omit to use the current dashboard.
soqlQuery string yes SOQL SELECT query to poll for changed records. The pipeline will inject a SystemModstamp filter automatically — include all desired fields and any static WHERE clauses. Example: "SELECT Id, Name, Amount, StageName, CloseDate, OwnerId FROM Opportunity WHERE IsClosed = false"
objectType string no Primary Salesforce object being polled.
Opportunity Account Contact Lead Forecast Campaign Task Event Custom
pollingInterval string no How often to poll Salesforce for changes. Default: "5m". Use ISO 8601 durations or Bento interval format: "1m", "5m", "15m", "1h".
connectorId string no If provided, updates the existing connector instead of creating a new one.
description string no Human-readable description of what this connector monitors. Shown to analysts in future sessions.
idExpression string no Bloblang expression for the Firestore document ID. Default: "this.Id" (Salesforce record ID). Use "this.Id" to deduplicate records by Salesforce ID.

Built to deliver on better outcomes.

Schedule a demo or contact us to learn more.