Skip to content

Salesforce

Connect Anything Graph to Salesforce objects via the REST API using the soql adapter. Bindings reference Salesforce object API names; SOQL is compiled at runtime.

Quick connect

anythinggraph source add

Choose Salesforce (soql), pick a profile name (for example salesforce_main), then enter:

  • Instance URL: https://your-instance.my.salesforce.com
  • Access token: OAuth bearer token with API access

To obtain a token for local development, use Salesforce Connected App OAuth or a session from your org's API tools. Store tokens only in .env, never in playbooks or bindings.

Manual setup

Profile (profiles/local.yaml):

sources:
  salesforce_main:
    adapter: soql
    instance_url: env:AG_SALESFORCE_MAIN_INSTANCE_URL
    auth: env:AG_SALESFORCE_MAIN_ACCESS_TOKEN

Secrets (.env):

AG_SF_INSTANCE_URL=https://your-instance.my.salesforce.com
AG_SF_ACCESS_TOKEN=your_oauth_access_token

The demo profile uses AG_SF_INSTANCE_URL and AG_SF_ACCESS_TOKEN for salesforce_main.

Binding YAML

Field Meaning
source_id Profile key
entities.*.from Salesforce object API name (e.g. Account, Lead)
entities.*.fields Playbook field → Salesforce field API name
relationships.*.link_column Lookup or reference field on the object

Binding file suffix: .salesforce.yaml (for adapter soql)

Example:

source_id: salesforce_main

entities:
  crm_user:
    from: User
    id: Id
    fields:
      user_id: Id
      full_name: Name

  crm_lead:
    from: Lead
    id: Id
    fields:
      lead_id: Id
      lead_name: Name

relationships:
  assigned_to:
    object: crm_lead
    link_column: OwnerId

Do not put instance URL, access token, or raw SOQL in binding files.

Introspect (MCP)

{ "source_id": "salesforce_main", "schema_name": "Account" }

schema_name optionally filters to a single Salesforce object API name. Omit it to describe all accessible objects.

See also