• Projects
  • Service
  • About
  • branding.bz
  • Podcast
  • Tips
  • FAQ
  • Recruit
  • Download
  • Contact
  • branding.bz(ブランド構築SaaS)
  • DESIGN NOW(デザインメディア)
  • X
  • LinkedIn
  • Spotify
  • Facebook

213-0011 神奈川県川崎市高津区久本3-6-7-303

© 2026 ID INC. All rights reserved

claude-skills/スキル
SKILLOfficialdevelopment

aidp-salesforce

プラグイン
oracle-ai-data-platform-workbench-spark-connectors
ソース
GitHub で見る ↗
説明

Salesforce データを AIDP(AI Data Platform)ノートブック内の Spark DataFrame に読み込みます。AIDP の `aidataplatform` Spark フォーマットハンドラーを使用して実行されます。 次のような場合に使用: ユーザーが Salesforce、SFDC、Sales Cloud、Service Cloud、Account、Opportunity、Lead、sObject、SOQL などに関連した操作を述べている場合。 認証方法はホスト名/ポート番号とユーザー名/パスワードの組み合わせです。読み込み専用(書き込みはできません)。

原文を表示

Read from Salesforce into a Spark DataFrame in an AIDP notebook via the AIDP `aidataplatform` Spark format handler. Use when the user mentions Salesforce, SFDC, Sales Cloud, Service Cloud, Account, Opportunity, Lead, sObject, SOQL. Auth is host/port + user/password. Read-only.

ユースケース
  • Salesforceデータをノートブックで分析するとき
  • AIDP内でSparkDataFrameを活用するとき
  • SOQLクエリの結果を処理するとき
本文(日本語訳)

aidp-salesforce — AIDP aidataplatform 経由の Salesforce 連携

次のような場合に使用

  • ユーザーが AIDP ノートブックから Salesforce データ(Account、Opportunity、Lead、Contact、カスタム sObject)を Spark DataFrame に取り込みたい場合。
  • ユーザーが「Salesforce」「SFDC」「Sales Cloud」「Service Cloud」「sObject」「SOQL」、または Salesforce オブジェクト名(Account、Opportunity など)に言及している場合。

次のような場合には使用しない

  • カスタムマニフェストを持つ任意の REST API の場合 → aidp-rest-generic
  • Oracle CX/CRM の場合 → aidp-siebel(Siebel)、または aidp-fusion-rest 経由の Fusion CX

AIDP ノートブックの前提条件

  1. sys.path にヘルパーが追加されていること(先に aidp-connectors-bootstrap を実行する)。
  2. 環境変数 / OCI Vault シークレット:
    • SFDC_HOST(Salesforce ログインホスト。例: login.salesforce.com または <my-domain>.my.salesforce.com)
    • SFDC_PORT(通常は 443)
    • SFDC_DATABASE_NAME(組織名 / データベース識別子。ほとんどのテナントでは組織名のみ)
    • SFDC_USER(Salesforce ユーザー名 — 通常は <email> 形式)
    • SFDC_PASSWORD(パスワードにセキュリティトークンを連結したもの: <password><security-token>)
    • SFDC_SCHEMA(コネクタでは通常 SFORCE)
    • SFDC_TABLE(sObject の API 名。例: Account、Opportunity、Custom_Object__c)

読み取り

import os
from oracle_ai_data_platform_connectors.aidataplatform import (
    AIDP_FORMAT, aidataplatform_options,
)

opts = aidataplatform_options(
    type="SFORCE",
    host=os.environ["SFDC_HOST"],
    port=int(os.environ.get("SFDC_PORT", "443")),
    database_name=os.environ["SFDC_DATABASE_NAME"],
    user=os.environ["SFDC_USER"],
    password=os.environ["SFDC_PASSWORD"],
    schema=os.environ.get("SFDC_SCHEMA", "SFORCE"),
    table=os.environ["SFDC_TABLE"],   # 例: "Account"、"Opportunity"
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)

プッシュダウン SQL

pushdown.sql を使用すると、SOQL 風のクエリをデータソース側にプッシュダウンできます。 インデックス付きフィールドでのフィルタリング、リレーションシップパスを経由した結合、LIMIT 指定などに有効です。

opts = aidataplatform_options(
    type="SFORCE",
    host=os.environ["SFDC_HOST"],
    port=int(os.environ.get("SFDC_PORT", "443")),
    database_name=os.environ["SFDC_DATABASE_NAME"],
    user=os.environ["SFDC_USER"],
    password=os.environ["SFDC_PASSWORD"],
    extra={
        "pushdown.sql": (
            "SELECT Id, Name, AnnualRevenue, BillingCountry "
            "FROM Account "
            "WHERE AnnualRevenue > 1000000 AND BillingCountry = 'United States'"
        ),
    },
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)

注意事項

  • type は SFORCE であり、SALESFORCE ではない。 人間が読みやすい名称に引きずられると間違えやすい。コネクタの type は文字どおり SFORCE と指定する。

  • パスワードにはセキュリティトークンの連結が必要。 Salesforce のユーザー名/パスワード認証では、<password><security-token> を1つの文字列として連結する必要がある。 セキュリティトークンはユーザーがパスワードを変更するたびにリセットされ、メールで通知される。

  • API 制限。 Salesforce は組織単位で1日あたりの API 呼び出しクォータを設けている。 バルク読み取りはこのクォータに計上される。 pushdown.sql に絞り込みフィルタとフィールド射影を指定し、API 呼び出し回数を最小限に抑えること。

  • コネクタは読み取り専用。 Salesforce への書き込み(sObject の作成/更新)は、Salesforce REST/Bulk API または Composite API を直接利用する必要がある。

  • カスタムオブジェクトの名前は __c で終わる(例: Project__c)。 カスタムフィールドも同様に __c で終わる — pushdown.sql 内でも必ず末尾の __c を含めること。

  • フィールドレベルセキュリティ(FLS)。 コネクタが使用するユーザーは Salesforce のプロファイルおよびパーミッションセットを継承する。 FLS によって非表示に設定されたフィールドは結果に含まれない。

参考情報

  • ヘルパー: scripts/oracle_ai_data_platform_connectors/aidataplatform.py
  • 公式サンプル: oracle-samples/oracle-aidp-samples → data-engineering/ingestion/Read_Only_Ingestion_Connectors/Salesforce.ipynb
原文(English)を表示

aidp-salesforce — Salesforce via AIDP aidataplatform

When to use

  • User wants to ingest Salesforce data (Account, Opportunity, Lead, Contact, custom sObjects) into a Spark DataFrame from an AIDP notebook.
  • User mentions: "Salesforce", "SFDC", "Sales Cloud", "Service Cloud", "sObject", "SOQL", a Salesforce object name (Account, Opportunity, etc.).

When NOT to use

  • For arbitrary REST APIs with a custom manifest → aidp-rest-generic.
  • For Oracle CX/CRM → aidp-siebel (Siebel) or Fusion CX via aidp-fusion-rest.

Prerequisites in the AIDP notebook

  1. Helpers on sys.path (run aidp-connectors-bootstrap first).
  2. Env vars / OCI Vault secrets:
    • SFDC_HOST (Salesforce login host, e.g. login.salesforce.com or <my-domain>.my.salesforce.com)
    • SFDC_PORT (typically 443)
    • SFDC_DATABASE_NAME (org name / database identifier; for most tenants this is just the org name)
    • SFDC_USER (Salesforce username — typically <email>)
    • SFDC_PASSWORD (password concatenated with security token: <password><security-token>)
    • SFDC_SCHEMA (typically SFORCE for the connector)
    • SFDC_TABLE (sObject API name, e.g. Account, Opportunity, Custom_Object__c)

Read

import os
from oracle_ai_data_platform_connectors.aidataplatform import (
    AIDP_FORMAT, aidataplatform_options,
)

opts = aidataplatform_options(
    type="SFORCE",
    host=os.environ["SFDC_HOST"],
    port=int(os.environ.get("SFDC_PORT", "443")),
    database_name=os.environ["SFDC_DATABASE_NAME"],
    user=os.environ["SFDC_USER"],
    password=os.environ["SFDC_PASSWORD"],
    schema=os.environ.get("SFDC_SCHEMA", "SFORCE"),
    table=os.environ["SFDC_TABLE"],   # e.g. "Account", "Opportunity"
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)

Pushdown SQL

Use pushdown.sql to push a SOQL-like query at the source — useful for filtering on indexed fields, joins via relationship paths, or LIMIT semantics.

opts = aidataplatform_options(
    type="SFORCE",
    host=os.environ["SFDC_HOST"],
    port=int(os.environ.get("SFDC_PORT", "443")),
    database_name=os.environ["SFDC_DATABASE_NAME"],
    user=os.environ["SFDC_USER"],
    password=os.environ["SFDC_PASSWORD"],
    extra={
        "pushdown.sql": (
            "SELECT Id, Name, AnnualRevenue, BillingCountry "
            "FROM Account "
            "WHERE AnnualRevenue > 1000000 AND BillingCountry = 'United States'"
        ),
    },
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)

Gotchas

  • type is SFORCE, not SALESFORCE. Easy to get wrong if you're following the human-readable name. The connector type literally says SFORCE.
  • Password requires the security token appended. Salesforce username/password auth needs <password><security-token> concatenated as a single string. The security token is reset each time the user changes their password — emailed to the user.
  • API limits. Salesforce enforces per-org daily API call quotas. Bulk reads count against the quota. Use pushdown.sql with selective filters and field projection to minimize calls.
  • Connector is read-only. Salesforce writes (create/update sObjects) need to go through the Salesforce REST/Bulk API or the Composite API directly.
  • Custom objects end in __c (e.g. Project__c). Custom fields end in __c too — always include the trailing __c in pushdown.sql.
  • Field-level security. The connector user inherits Salesforce profile + permission sets. Fields hidden by FLS won't appear in the result.

References

  • Helper: scripts/oracle_ai_data_platform_connectors/aidataplatform.py
  • Official sample: oracle-samples/oracle-aidp-samples → data-engineering/ingestion/Read_Only_Ingestion_Connectors/Salesforce.ipynb

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。