...

Open CTI 開発者ガイド - Amazon Web Services

by user

on
Category: Documents
123

views

Report

Comments

Transcript

Open CTI 開発者ガイド - Amazon Web Services
Version 31.0: Summer ’14
Open CTI 開発者ガイド
最終更新日: 2014/9/17
©
Copyright 2000–2014 salesforce.com, inc. All rights reserved. Salesforce.com およびその他の名称や商標は、salesforce.com, inc. の
登録商標です。本ドキュメントに記載されたその他の商標は、各社に所有権があります。
目次
目次
第 1 章: Open CTI の概要....................................................................................................................1
Open CTI を使用するケース.................................................................................................................................................2
Open CTI サポートポリシー.................................................................................................................................................3
後方互換性...................................................................................................................................................................3
API サポート...............................................................................................................................................................3
その他のリソース...................................................................................................................................................................4
Open CTI 表記規則................................................................................................................................................................4
Open CTI を使用した サンプル HTML ページ.................................................................................................................5
第 2 章: コールセンター定義ファイル.................................................................................................8
コールセンター定義ファイルの XML 形式........................................................................................................................8
コールセンターの必須要素と必須属性.............................................................................................................................10
コールセンターの省略可能な要素と属性..........................................................................................................................11
<item> 要素の値の指定.........................................................................................................................................................12
コールセンター定義ファイルのサンプル..........................................................................................................................12
第 3 章: Open CTI の使用..................................................................................................................13
Open CTI への接続..............................................................................................................................................................13
Open CTI での非同期コール...............................................................................................................................................14
Force.com Canvas の使用......................................................................................................................................................14
ベストプラクティス.............................................................................................................................................................15
第 4 章: Salesforce アプリケーション操作用のメソッド.....................................................................16
getPageInfo()...........................................................................................................................................................................17
isInConsole()...........................................................................................................................................................................18
isVisible()................................................................................................................................................................................20
notifyInitializationComplete()................................................................................................................................................21
onFocus()................................................................................................................................................................................21
refreshPage()...........................................................................................................................................................................23
refreshRelatedList().................................................................................................................................................................24
runApex()................................................................................................................................................................................25
saveLog().................................................................................................................................................................................27
screenPop()..............................................................................................................................................................................28
searchAndGetScreenPopUrl().................................................................................................................................................29
searchAndScreenPop()............................................................................................................................................................31
refreshObject()........................................................................................................................................................................32
setVisible()...............................................................................................................................................................................33
onObjectUpdate()...................................................................................................................................................................34
第 5 章: コンピュータテレフォニーインテグレーション (CTI) のメソッド......................................36
disableClickToDial()...............................................................................................................................................................36
i
目次
enableClickToDial()...............................................................................................................................................................37
getCallCenterSettings()...........................................................................................................................................................38
getDirectoryNumbers()...........................................................................................................................................................39
getSoftphoneLayout().............................................................................................................................................................41
onClickToDial()......................................................................................................................................................................43
setSoftphoneHeight()..............................................................................................................................................................44
setSoftphoneWidth()..............................................................................................................................................................45
第 6 章: 用語集...................................................................................................................................47
ii
第1章
Open CTI の概要
Salesforce CRM Call Center は、Salesforce とサードパーティのコンピュータテレフォニーインテグレーション (CTI)
システムを融合します。Open CTI が導入される前は、Salesforce ユーザは、CTI アダプタプログラムをコンピュー
タにインストールしなければ、CTI システムの機能を使用できませんでした。また、そのようなプログラムには
メンテナンスが必要なデスクトップソフトウェアが含まれていたため、クラウドアーキテクチャの本来の利点が
生かされていないことが多くありました。Open CTI では、開発者は次のことを実行できます。
•
CTI アダプタを使用せずに Salesforce と統合する CTI システムを構築する。
•
Salesforce および Salesforce コンソールと完全に統合されたパーツとして機能するカスタマイズ可能なソフト
フォン (通話管理ツール) を作成する。
•
Mac、Linux、または Windows マシン上の Microsoft® Internet Explorer®、Mozilla® Firefox®、Apple® Safari®、ま
たは Google Chrome™ 向けの CTI などブラウザおよびプラットフォームにとらわれない CTI システムを提供
する。
このガイドを使用するには、次の基本事項を理解しておく必要があります。
•
•
•
•
CTI
JavaScript
Visualforce
•
ソフトウェア開発
•
Salesforce コンソール
Salesforce CRM Call Center
•
Web サービス
このガイドでは、Open CTI を JavaScript で使用して、API コールとプロセスを組み込む方法を説明します。Open
CTI は、JavaScript ページで使用する場合にのみ有効です。このガイドの例では、JavaScript が使用されています。
ここで説明されている機能は、次を所有している場合に組織で使用できます。
•
Professional、Enterprise、Unlimited、Performance、または Developer Edition
•
Salesforce コンソール
Open CTI は、ブラウザベースの JavaScript API です。Open CTI は、ソフトフォンを表示するためのクライアン
トとしてブラウザを使用します。Open CTI には次のような特性があります。
•
所定のリリースの API バージョンと一致します。たとえば、SOAP API の現在のバージョンが 25.0 の場合、
Open CTI もバージョン 25.0 が使用されます。
•
サポートされるブラウザの最小要件は次のとおりです。Internet Explorer 8、Firefox 3.6、Safari 4、または Chrome
11.0。
1
Open CTI の概要
Open CTI を使用するケース
Open CTI を使用するケース
Open CTI を使用すると、高度なスキルを持つシステム管理者と開発者は、CTI (コンピュータテレフォニーイン
テグレーション) システムを開発してサードパーティの CTI システムを Salesforce と統合できます。そうするこ
とで、Salesforce ユーザが CTI アダプタをマシンにインストールしなくてもソフトフォンを使用できるようにな
ります。たとえば、ユーザがクライアントアプリケーションをダウンロードおよびインストールする必要なく
CTI システムの機能にアクセスできるように、Open CTI を使用してカスタムソフトフォンを Salesforce と統合で
きます。Open CTI は、Salesforce で CTI 機能を表示するためのクライアントとしてブラウザを使用する API で
す。
次の表に、開発者が Salesforce 組織のカスタム機能を実行するために使用できるその他の機能を示します。
機能
説明
SOAP API
一度に 1 つのレコードタイプのみを処理し、トランザクション制御 (Savepoint の設
定や変更のロールバックなど) を必要としない複合アプリケーションに機能を追加
する場合、標準の SOAP API コールを使用します。
詳細は、『SOAP API 開発者ガイド』を参照してください。
Visualforce
Visualforce では、タグベースのマークアップ言語を使用して、開発者はより効果的
にアプリケーションを開発したり、Salesforce のユーザインターフェースをカスタマ
イズしたりできます。Visualforce を使用して、次のことができます。
•
ウィザードやその他のマルチステッププロセスの構築
•
アプリケーションを介した独自のカスタムフローコントロールの作成
•
最適かつ効果的なアプリケーションの相互作用を目的とした、ナビゲーションパ
ターンやデータ固有ルールの定義
詳細は、『Visualforce 開発者ガイド』を参照してください。
Salesforce コンソールイン Salesforce コンソールインテグレーションツールキットは、Salesforce コンソールの
テグレーションツールキッ カスタム機能を実装する場合に役立ちます。たとえば、Salesforce コンソールインテ
ト
グレーションツールキットを使用して、Visualforce ページまたはサードパーティ製
のコンテンツを Salesforce コンソールのタブとして表示できます。Salesforce コンソー
ルインテグレーションツールキットは、ブラウザをクライアントとして使用し、コ
ンソールにページを表示するための API です。
Apex
次のような場合に Apex を使用します。
•
Web サービスを作成する
•
メールサービスを作成する
•
複数のオブジェクトに複雑な検証を実行する
•
ワークフローでサポートされていない複雑なビジネスプロセスを作成する
•
カスタムトランザクションロジック (1 つのレコードやオブジェクトだけでなく、
トランザクション全体で発生するロジック) を作成する
•
レコードの保存などの別の操作にカスタムロジックを追加し、ユーザインター
フェース、Visualforce ページ、SOAP API のいずれから操作が実行されても、ロ
ジックが実行されるようにする
2
Open CTI の概要
機能
Open CTI サポートポリシー
説明
詳細は、『Force.com Apex コード開発者ガイド』を参照してください。
Open CTI サポートポリシー
Open CTI で機能強化が含まれるバージョンは、最新リリースのみです。以前のバージョンには、修正が含まれ
る場合があります。新しいバージョンがリリースされても、以前のバージョンを引き続き使用できます。
後方互換性
Salesforce.com では、Open CTI プラットフォームを使用する際に後方互換性を容易に確保できるよう努めていま
す。
新しい Salesforce リリースは、次の 2 つのコンポーネントで構成されています。
•
salesforce.com システムにある新しいリリースのプラットフォームソフトウェア
•
新しいバージョンの API
たとえば、Summer '12 リリースには API バージョン 25.0 が、Winter '13 リリースには API バージョン 26.0 が含
まれていました。
Open CTI のバージョンは、各リリースの API バージョンと一致します。そのため、API の現在のバージョンが
26.0 の場合、Open CTI もバージョン 26.0 が使用されます。
プラットフォームの複数のリリースにわたって、各 Open CTI バージョンのサポートを維持しています。特定の
Open CTI バージョンで機能するように作成されたアプリケーションが、その後のプラットフォームのリリース
でも同じバージョンの Open CTI を使用して引き続き機能するという点で、Open CTI には後方互換性がありま
す。
Salesforce.com では、あるバージョンの Open CTI に対応して作成されたアプリケーションがその後のバージョン
の Open CTI で機能することは保証していません。Open CTI の拡張は継続して行われているため、メソッド署
名およびデータ表現の変更が必要になる場合がよくあります。ただし、アプリケーションを新しいバージョンの
Open CTI に移行するときに必要になる変更が最小限になるよう、Salesforce.com では Open CTI のバージョン間
で一貫性を保持することに努めています。
たとえば、Summer '12 リリースに付属する Open CTI バージョン 25.0 を使用して作成されたアプリケーション
は、Winter '13 リリースおよびその後のリリースで Open CTI バージョン 25.0 を使用して引き続き機能します。
ただし、同じアプリケーションが、変更されずそのままで Open CTI バージョン 26.0 でも機能することは保証さ
れていません。
API サポート
Salesforce.com では、最初のリリース日から最低 3 年 Open CTI バージョンをサポートします。Open CTI の品質
とパフォーマンスを改善するために、リリースから 3 年を超えるバージョンはサポートを停止する可能性があり
ます。
3
Open CTI の概要
その他のリソース
Open CTI バージョンのサポートが停止される予定がある場合、使用終了の通知が、バージョンのサポートが終
了する最低 1 年前には送付されます。Salesforce.com は、使用できなくなる Open CTI バージョンを使用している
お客様に直接通知します。
その他のリソース
このガイドの他にも、以下のように、Open CTI の使用方法を学習するためのリソースが用意されています。
•
オンラインヘルプ: 「コールセンターの概要」および「Salesforce コンソールの概要」を参照してください。
•
開発者 Web サイト: https://developer.salesforce.com/gettingstarted
•
Firefox の Firebug 拡張機能: Firebug for Firefox
メモ: Salesforce.com Education Services では、開発者が Force.com プラットフォームで構築されるアプリ
ケーションを設計、作成、インテグレーション、および拡張できるトレーニングコースが設けられてい
ます。詳細は、http://www.salesforce.com/training を参照してください。
Open CTI 表記規則
Open CTI のガイドでは、次の表記規則を使用します。
規則
説明
Courier font
構文の記述では、等幅フォントは、角かっこを除いて表示されたとおりに入力
する必要のある項目を示します。次に例を示します。
Public class HelloWorld
斜体
構文の記述では、斜体は変数を示します。実際の値を入力してください。次の
例では、3 つの値を入力する必要があります。datatype variable_name [ =
value];
構文で太字かつ斜体のテキストは、クラス名や変数の値など、ユーザが指定す
る必要があるコード要素を表します。
public static class YourClassHere { ... }
Bold Courier font
コードサンプルと構文の記述では、太字の Courier フォントはコードまたは構
文の部分を強調します。
<>
構文の記述では、不等号 (< >) は表示されたとおりに入力します。
<apex:pageBlockTable value="{!account.Contacts}" var="contact">
<apex:column value="{!contact.Name}"/>
<apex:column value="{!contact.MailingCity}"/>
<apex:column value="{!contact.Phone}"/>
</apex:pageBlockTable>
4
Open CTI の概要
Open CTI を使用した サンプル HTML ページ
規則
説明
{}
構文の説明では、中括弧 ({ }) は表示されたとおりに入力します。
<apex:page>
Hello {!$User.FirstName}!
</apex:page>
構文の記述では、角括弧で囲まれるものはすべて省略可能です。次の例では、
value の指定は省略可能です。
[]
data_type variable_name [ = value];
構文の記述では、パイプ記号は「または」を意味します。次のいずれか (すべ
てではない) を実行できます。次の例では、2 つの方法のいずれかを使用して
未入力のセットを作成するか、次のようにセットを入力することができます。
|
Set<data_type> set_name
[= new Set<data_type>();] |
[= new Set<data_type{value [, value2. . .] };] |
;
Open CTI を使用した サンプル HTML ページ
この例では、Open CTI を使用して CTI 機能を Salesforce ユーザインターフェースに追加する方法を示します。
Salesforce 組織にコールセンター定義ファイルをすでにインポートしたことを前提としています。
1. HTML ページを作成します。
2. 次のサンプルコードを切り取って HTML ページに貼り付けます。
このコードは、Open CTI の各種関数を示しています。
<html>
<head>
<!-- Imports Open CTI JavaScript library. It should point to a valid Salesforce
domain. -->
<script src="https://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
// Callback of API method: isInConsole
var isInConsoleCallback = function (response) {
// Returns true if method is executed in Salesforce console, false
otherwise.
if (response.result) {
alert('SoftPhone is in Salesforce console.');
} else {
alert('SoftPhone is not in Salesforce console.');
}
};
// Invokes API method: isInConsole
function isInConsole() {
sforce.interaction.isInConsole(isInConsoleCallback);
}
// Callback of API method: getCallCenterSettings
var getCallCenterSettingsCallback = function (response) {
// Result returns call center settings as a JSON string.
if (response.result) {
5
Open CTI の概要
Open CTI を使用した サンプル HTML ページ
alert(response.result);
} else {
alert('Error retrieving call center settings ' +
response.error);
}
};
// Invokes API method: getCallCenterSettings
function getCallCenterSettings() {
sforce.interaction.cti.getCallCenterSettings(getCallCenterSettingsCallback);
}
// Callback of API method: setSoftphoneHeight
var setSoftphoneHeightCallback = function (response) {
// Returns true if SoftPhone height was set successfully, false
otherwise.
if (response.result) {
alert('Setting SoftPhone height to 300px was successful.');
} else {
alert('Setting softphone height failed.');
}
};
// Invokes setSoftphoneHeight API method.
function setSoftphoneHeight() {
sforce.interaction.cti.setSoftphoneHeight(300,
setSoftphoneHeightCallback);
}
// Callback of API method: getPageInfo
var getPageInfoCallback = function (response) {
if (response.result) {
alert(response.result);
} else {
alert('Error occured while trying to get page info: ' +
response.error);
}
}
// Invokes API method getPageInfo
function getPageInfo() {
sforce.interaction.getPageInfo(getPageInfoCallback);
}
</script>
</head>
<body>
<button onclick="isInConsole();">isInConsole</button></br>
<button onclick="getCallCenterSettings();">getCallCenterSettings</button></br>
<button onclick="setSoftphoneHeight();">setSoftphoneHeight(300)</button></br>
<button onclick="getPageInfo();">getPageInfo</button>
</body>
</html>
上記の HTML ページを作成して URL をコールセンター定義ファイルに追加した後に、ソフトフォンが Salesforce
の左側または Salesforce コンソールにカスタムコンソールコンポーネントとして表示されます。
図 1 : Salesforce でのサンプル HTML ページの出力
6
Open CTI の概要
Open CTI を使用した サンプル HTML ページ
図 2 : Salesforce コンソールでのサンプル HTML ページの出力
7
第2章
コールセンター定義ファイル
コールセンター定義ファイルは、特定のソフトフォン向けの、Salesforce でコールセンターの定義に使用される一
連の項目と値を指定します。Salesforce では、Salesforce CRM Call Center と複数の CTI システム業者とのインテ
グレーションをサポートするためにコールセンター定義ファイルを使用します。
Salesforce CRM Call Center のコールセンターには、ソフトフォンで特に動作するコールセンター定義ファイルが
必要です。Open CTI でカスタムソフトフォンを開発する場合は、それをサポートするコールセンター定義ファ
イルを記述する必要があります。特定のソフトフォンに対するコールセンターの最初のインスタンスは、Salesforce
にアダプタのコールセンター定義ファイルをインポートすることで定義する必要があります。その後のコールセ
ンターは、最初のインポートで作成された元のコールセンターをコピーすることで作成できます。
組織でソフトフォンを変更したり、新規ソフトフォンを開発したりする場合は、元のソフトフォンのコールセン
ター定義ファイルをカスタマイズして、追加のコールセンターに必要な情報を含めるようにする必要がありま
す。たとえば、バックアップサーバをサポートするシステムに対してソフトフォンを開発している場合、コール
センター定義ファイルにはそのバックアップサーバの IP アドレスとポート番号を含める必要があります。バッ
クアップサーバを使用しないシステムのソフトフォンに関連付けられているコールセンター定義ファイルには、
これらの項目は必要ありません。
テキストエディタまたは XML エディタを使用して、次のトピックで示すガイドラインに従ってコールセンター
定義ファイルを定義します。
メモ: Salesforce CRM Call Center の設定や、コールセンター定義ファイルのインポートおよびコピーにつ
いての詳細は、Salesforce オンラインヘルプの「Salesforce CRM Call Center の設定」と「コールセンター
の作成」を参照してください。
コールセンター定義ファイルの XML 形式
コールセンター定義ファイルは、callCenter、section、item という 3 つの XML 要素で構成されます。次に、
各要素のプロパティと属性ついて詳しく説明します。
callCenter
この要素は、1 つのコールセンターの電話システムの定義を表します。すべてのコールセンター定義ファイ
ルには、少なくとも 1 つの <callCenter> 要素を含める必要があります。<callCenter> 要素は、1 つ以上
の <section> 要素で構成されます。
8
コールセンター定義ファイル
コールセンター定義ファイルの XML 形式
section
この要素は、サーバ情報や発信番号など、関連するデータ項目のグルーピングを表します。Salesforce でコー
ルセンターを編集すると、割り当てられたセクションごとに項目が整理されます。<section> 要素は、1
つの <callCenter> 要素に属し、1 つ以上の <item> 要素で構成されます。
属性:
名前
型
必須項目
説明
sortOrder
正の整数
必須
Salesforce でコールセンターを編集するときにセクショ
ンが表示される順序。たとえば、sortOrder="1" が指
定されたセクションは、sortOrder="2" が指定された
セクションの直前に表示されます。
sortOrder の値は、負でない整数である必要があり、
1 つのコールセンター定義内で数値をスキップするこ
とはできません。たとえば、1 つのコールセンター定
義ファイルに 3 つの <section> 要素がある場合、1 つ
の <section> 要素は sortOrder="0"、1 つの
<section> 要素は sortOrder="1"、1 つの要素は
<section> 要素は sortOrder="2" を持つ必要があり
ます。
name
String
必須
Salesforce データベースで定義される、セクションの内
部名。この値を使用して、カスタムアダプタまたはソ
フトフォンコードの作成時にセクションを参照できま
す。
名前には、空白や他の句読点を含まない英数字のみを
使用する必要があります。それぞれの名前は 40 文字以
内に制限されています。
req で始まる名前は、必須の Salesforce セクションのた
めに予約されています (Salesforce ヘルプの 「コールセ
ンターの必須要素と必須属性」を参照)。name 属性に
使用できない他の予約語として、label、sortOrder、
internalNameLabel、displayNameLabel がありま
す。
label
String
省略可能
Salesforce で表示するときのセクション名。表示ラベル
には、UTF-8 文字で構成された任意の文字列を使用で
きます。それぞれの名前は 1000 文字以内に制限されて
います。
item
この要素は、プライマリサーバの IP アドレスや国際電話の発信番号など、1 つのコールセンター定義の 1
つの項目を表します。Salesforce でコールセンターを編集すると、各 <item> 要素は、それが属するセクショ
ンの下に表示されます。1 つの <section> 要素に、複数の <item> 要素を指定できます。
9
コールセンター定義ファイル
コールセンターの必須要素と必須属性
属性:
名前
型
必須項目
説明
sortOrder
正の整数
必須
Salesforce でコールセンターを編集するときに項目が表
示される順序。たとえば、sortOrder="1" が指定され
た項目は、sortOrder="2" が指定された項目の直前に
表示されます。
sortOrder の値は、負でない整数である必要があり、
1 つのコールセンター定義内で数値をスキップするこ
とはできません。たとえば、1 つのコールセンター定
義ファイルに 3 つの <item> 要素がある場合、1 つの
<item> 要素は sortOrder="0"、1 つの <item> 要素は
sortOrder="1"、1 つの要素は <item> 要素は
sortOrder="2" を持つ必要があります。
name
String
必須
Salesforce データベースで定義される、項目の内部名。
この値を使用して、カスタムアダプタまたはソフトフォ
ンコードの作成時に項目を参照できます。
名前には、空白や他の句読点を含まない英数字のみを
使用する必要があります。それぞれの名前は 40 文字以
内に制限されています。
req で始まる名前は、必須の Salesforce セクションのた
めに予約されています (Salesforce ヘルプの 「コールセ
ンターの必須要素と必須属性」を参照)。name 属性に
使用できない他の予約語として、label、sortOrder、
internalNameLabel、displayNameLabel がありま
す。
label
String
省略可能
Salesforce で表示するときの項目名。表示ラベルには、
UTF-8 文字で構成された任意の文字列を使用できます。
それぞれの名前は 1,000 文字以内に制限されています。
コールセンターの必須要素と必須属性
すべてのコール定義ファイルには、次の名前の <item> 要素を含む <section> が 1 つ必要です。
<item> 名
説明
reqInternalName
データベースでコールセンターを識別する一意の識別子を表します。sortOrder 値
は 0 でなければならず、この値をコールセンター定義で指定する必要があります。
reqInternalName の値には、空白や他の句読点を含まない 40 文字以内の英数字の
みを使用できます。英字で始まり、組織で定義された他のすべてのコールセンター
の reqInternalName で一意である必要があります。
10
コールセンター定義ファイル
コールセンターの省略可能な要素と属性
<item> 名
説明
reqDisplayName
Salesforce に表示されるコールセンターの名前を表します。sortOrder の値は 1 であ
る必要があります。reqDisplayName の値は、最大長 1,000 文字の UTF-8 文字です。
reqAdapterUrl
CTI アダプタまたはソフトフォンをホストする場所を表します。たとえば、
http://localhost:11000 などです。: /apex/softphone などの相対 URL は、
Visualforce ページで有効です。また、Force.com Canvas アプリケーションを Open CTI
に追加すると、そのアプリケーションを reqAdapterUrl より優先させることができ
ます (指定されている場合)。
reqUseApi
コールセンターで Open CTI を使用しているか (true)、否か (false) を表します。
reqSoftphoneHeight
Salesforce に表示されるソフトフォンの高さ (ピクセル単位) を表します。
reqSoftphoneWidth
Salesforce に表示されるソフトフォンの幅 (ピクセル単位) を表します。
reqCanvasNamespace
コールセンターに追加される Force.com Canvas アプリケーションに関連付けられて
いる名前空間を表します。キャンバスアプリケーションを Open CTI に追加する場
合は、必須です。
reqCanvasApiName
コールセンターに追加される Force.com Canvas アプリケーションに関連付けられて
いる API 名を表します。キャンバスアプリケーションを Open CTI に追加する場合
は、必須です。
必要に応じて、このセクションに追加の <item> 要素を指定できます。
コールセンターの省略可能な要素と属性
コール定義ファイルの必須要素に加え、省略可能な要素を追加してソフトフォンを設定できます。
<item> 名
説明
reqStandbyUrl
セカンダリソフトフォンをホストする場所を表します。スタンバイソフ
トフォンは、プライマリソフトフォンのタイムアウト期間が経過し、必
要なタイムアウト期間内に notifyInitializationComplete() メソッ
ドがコールされていない場合に使用されます。スタンバイ URL を指定す
る場合は、reqTimeout 項目も指定する必要があります。
reqTimeout
スタンバイ URL を使用してソフトフォンをホストするための経過時間
(ミリ秒単位) を表します。タイムアウト期間が経過するまでは、ソフト
フォンが初期化中であることを示す読み込み中アイコンがソフトフォン
に表示されます。必要なタイムアウトを指定する場合は、reqStandbyUrl
項目も指定する必要があります。
reqSoftphoneWidth
Salesforce に表示されるソフトフォンの幅 (ピクセル単位) を表します。
11
コールセンター定義ファイル
<item> 要素の値の指定
<item> 要素の値の指定
値をコールセンター定義ファイルに必ず指定する必要がある reqInternalName <item> を除き、<item> の値
は、コールセンター定義ファイルで指定することも、定義ファイルのインポート後に Salesforce で指定すること
もできます。
コールセンター定義ファイルの <item> 要素に値を指定するには、<item> の開始タグおよび終了タグの間に値
を配置します。たとえば、次のように使用します。
<item sortOrder="0" name="reqInternalName" label="Call Center Internal
Label">MyCallCenter</item>
reqInternalName <item> の値を MyCallCenter に設定します。reqInternalName の値以外の <item> の値は、
コールセンター定義がインポートされた後に Salesforce で編集できます。
コールセンター定義ファイルのサンプル
次の XML コードは、コールセンター定義ファイルのサンプルを構成します。
<!-All sections and items whose name value begins with "req" are
required in a valid call center definition file. The sortOrder
and label attributes can be changed for all required sections
and items except reqGeneralInfo, reqInternalName, and
reqDisplayName, in which only the label attribute can be altered.
Note that the value for the reqInternalName item is limited to
40 alphanumeric characters and must start with an alphabetic
character. reqInternalName must be unique for all call centers
that you define.
-->
<callCenter>
<section sortOrder="0" name="reqGeneralInfo" label="General Information">
<item sortOrder="0" name="reqInternalName" label="InternalNameAAA">DemoAdapter</item>
<item sortOrder="1" name="reqDisplayName" label="Display Name">Demo Call Center
Adapter</item>
<item sortOrder="2" name="reqAdapterUrl" label="CTI Adapter
URL">https://c.force.com/softphone</item>
<item sortOrder="3" name="reqUseApi" label="Use CTI API">true</item>
<item sortOrder="4" name="reqSoftphoneHeight" label="Softphone Height">300</item>
<item sortOrder="5" name="reqSoftphoneWidth" label="Softphone Width">500</item>
<item sortOrder="6" name="reqCanvasNamespace" label="Canvas Namespace">mm</item>
<item sortOrder="7" name="reqCanvasApiName" label="Canvas API Name">Hello_World</item>
</section>
<section sortOrder="1" name="reqDialingOptions" label="Dialing Options">
<item sortOrder="0" name="reqOutsidePrefix" label="Outside Prefix">9</item>
<item sortOrder="1" name="reqLongDistPrefix" label="Long Distance Prefix">1</item>
<item sortOrder="2" name="reqInternationalPrefix" label="International Prefix">01</item>
</section>
</callCenter>
12
第3章
Open CTI の使用
Open CTI を使用して Salesforce で次の操作を実行します。
•
ソフトフォンの高さまたは幅を設定する
•
クリック-to-ダイヤルを有効化または無効化する
•
コールセンター定義ファイルの設定を返す
•
ユーザが Salesforce コンソールを表示しているかどうかを判別する
•
Salesforce コンソールでソフトフォンを表示または非表示にする
•
ページに関する情報を返す
•
Salesforce で公開されている Apex クラスから Apex メソッドを実行する
•
Salesforce のオブジェクトを保存または更新する
•
Salesforce でキーワードを検索し、ソフトフォンレイアウトの定義に従って一致するレコードを画面ポップす
る
Open CTI への接続
Open CTI を使用する JavaScript コードの冒頭部分では、ツールキットを JavaScript コードで使用できるようにす
る必要があります。このための構文は、JavaScript を Visualforce ページとサードパーティドメインのどちらに埋め
込んでいるかによって異なります。
•
Visualforce ページ、またはカスタム onclick JavaScript ボタン以外のソースの場合、Open CTI ファイルを参
照する <script> タグを指定します。
<apex:page>
<script src="/support/api/31.0/interaction.js" type="text/javascript"></script>
...
</apex:page>
Visualforce の場合、integration.js は相対パスに追加すれば十分であり、この方法をお勧めします。
•
サードパーティドメインの場合:
<script src="https://c.na1.visual.force.com/support/api/31.0/interaction.js"
type="text/javascript"></script>
サードパーティドメインの場合、ツールキットを使用するには interaction.js への絶対 URL を指定する
必要があります。ツールキットライブラリにアクセスできるデフォルトのインスタンスは、
13
Open CTI の使用
Open CTI での非同期コール
https://c.na1.visual.force.com/support/api/31.0/interaction.js です。組織のインスタンスを判
別できない場合は、デフォルトのインスタンスを使用することをお勧めします。
Open CTI のバージョンは、URL に含まれています。
Open CTI での非同期コール
Open CTI を使用すると、非同期コールを発行できます。非同期コールにより、クライアント側のプロセスは、
サーバからのコールバックを待機せずに処理を続行できます。非同期コールを発行するには、API コールに、
コールバック関数と呼ばれる追加のパラメータを設定する必要があります。結果の準備ができると、サーバは結
果を指定してコールバックメソッドを呼び出します。
非同期の構文:
method('arg1','arg2', ..., callback_method);
次に例を示します。
//Set SoftPhone height
sforce.interaction.cti.setSoftphoneHeight(300, callback);
メモ: コールの結果は、実行コンテキストによって異なります。たとえば、標準の Salesforce アプリケー
ションで setSoftphoneWidth() をコールしても影響はありませんが、Salesforce コンソールで
setSoftphoneWidth() をコールするとソフトフォンの幅がサイズ変更されます。
Force.com Canvas の使用
署名付き要求や OAuth 2.0 プロトコルなどの認証方式を必要とする外部アプリケーションに Open CTI を統合す
るには、Force.com Canvas を使用することをお勧めします。
Force.com Canvas と Open CTI は似ています。これらはツールと JavaScript API のセットで、開発者がサードパー
ティシステムを Salesforce に追加するために使用できます。ただし、Force.com Canvas の利点の 1 つとして、認証
方式を選択できるという点があります。詳細は、『Force.com Canvas 開発者ガイド』を参照してください。
メモ: キャンバスアプリケーションを Salesforce コンソールに表示するには、コンソールにカスタムコン
ソールコンポーネントとしてそれを追加する必要があります。Salesforce ヘルプの 「コンソールコンポー
ネントの追加」を参照してください。
キャンバスアプリケーションの開発時に Open CTI の機能を含めるには、次の操作を実行します。
1. index.jsp に Open CTI API を含めます。
2. Sfdc.canvas.client.signedrequest() をコールし、コンソールインテグレーションツールキット API に
必要な署名付き要求を保存します。たとえば、Force.com Canvas の認証方式が署名付き要求の場合は、次を実
行します。
Sfdc.canvas.client.signedrequest('<%=signedRequest%>')
14
Open CTI の使用
ベストプラクティス
Force.com Canvas の認証方式が OAuth の場合は、『Force.com Canvas 開発者ガイド』の「キャンバスアプリケー
ションでのコンテキストの取得」に記載されているように、コンテキストの取得に使用されるコールバック
関数で次を実行します。
Sfdc.canvas.client.signedrequest(msg)
Open CTI およびキャンバスアプリケーションを使用する場合は、次の点を考慮してください。
•
Open CTI API スクリプトは署名付き要求によって異なるため、Sfdc.canvas.client.signedrequest() へ
のコールの実行後に追加する必要があります。スクリプトを動的に読み込むことをお勧めします。
•
キャンバスのサイドバーコンポーネントに関連付けられているレコードのエンティティ ID を取得するには、
次を実行します。
// Get signedRequest
var signedRequest = Sfdc.canvas.client.signedrequest();
var parsedRequest = JSON.parse(signedRequest);
// get the entity Id that is associated with this canvas sidebar component.
var entityId = parsedRequest.context.environment.parameters.entityId;
•
OAuth の entityId を取得するには、次を実行します。
var entityId = msg.payload.environment.parameters.entityId;
msg.payload の取得方法の例については、『Force.com Canvas 開発者ガイド』の「キャンバスアプリケーショ
ンでのコンテキストの取得」を参照してください。
ベストプラクティス
•
Open CTI に含まれるメソッドの多くは非同期で、コールバックメソッドを使用して結果を返すため、各メ
ソッドのドキュメントを参照してそれぞれの応答の情報を理解することをお勧めします。
•
Open CTI で生成されるエラーは通常、JavaScript 処理を停止しない方法で発行されます。そのため、コード
をデバッグしやすいように、Firebug for Firefox のようなツールを使用して JavaScript コンソールを監視するこ
とをお勧めします。
•
Visualforce を使用して Salesforce コンソールのサイドバーをカスタマイズ、拡張、または統合する方法の詳細
は、Salesforce オンラインヘルプの「カスタムコンソールコンポーネントの概要」を参照してください。
15
第4章
Salesforce アプリケーション操作用のメソッド
Open CTI を使用すると、CTI システムから Salesforce アプリケーションを操作できます。
次のメソッドを使用して、CTI システムと Salesforce 間、または [ケースフィード] ページの要素間での操作を設
定できます。
CTI メソッド
メソッド
説明
getPageInfo()
現在のページに関する情報を JSON 文字列として返します。
isInConsole()
ソフトフォンが Salesforce コンソールにあるかどうかを示します。詳細
は、Salesforce オンラインヘルプの「Salesforce コンソールの概要」を参
照してください。
isVisible()
ソフトフォンが表示される場合は true、非表示の場合は false を返し
ます。
notifyInitializationComplete() Salesforce に、ソフトフォンの初期化が完了したことと、Salesforce がス
タンバイ URL に切り替えないようにすることを通知します。ソフトフォ
ンの初期化中は、[ソフトフォン] 領域に読み込み中アイコンが表示され
ます。
onFocus()
ブラウザのフォーカスが変更されるとコールされる関数を登録します。
Salesforce コンソールでは、主タブまたはナビゲーションタブでユーザが
移動すると、ブラウザのフォーカスが変更されます。
refreshPage()
ページ更新が呼び出された場合は true、それ以外の場合は false を返
します。このメソッドが Salesforce コンソール内でコールされると、現
在の有効なタブが更新されます。
refreshRelatedList()
指定された listName を持つ関連リストが更新された場合は true、それ
以外の場合は false を返します。このメソッドが Salesforce コンソール
内でコールされると、現在フォーカスのあるビューで指定のリスト名を
持つ関連リストのみが更新されます。
runApex()
Salesforce で公開された Apex クラスから Apex メソッドを実行します。
saveLog()
オブジェクトを Salesforce で保存または更新します。
screenPop()
対象 URL (相対である必要がある) にポップします。
16
Salesforce アプリケーション操作用のメソッド
getPageInfo()
CTI メソッド
searchAndGetScreenPopUrl()
特定の文字列に対してソフトフォンレイアウトで指定されたオブジェク
トを検索します。検索結果と、ポップ画面への相対 URL を返します。
このメソッドは、実際の画面ポップを実行しません。このメソッドは、
ソフトフォンレイアウトで定義された画面ポップ設定を優先します。詳
細は、Salesforce オンラインヘルプの「カスタムソフトフォンレイアウト
の設計」を参照してください。
searchAndScreenPop()
特定の文字列に対してソフトフォンレイアウトで指定されたオブジェク
トを検索します。検索結果を返し、一致するレコードが画面にポップさ
れます。このメソッドは、ソフトフォンレイアウトで定義された画面
ポップ設定を優先します。
setVisible()
Salesforce コンソールで、ソフトフォンを表示するか非表示にします。詳
細は、Salesforce オンラインヘルプの「Salesforce コンソールの概要」を
参照してください。
ケースフィードメソッド
onObjectUpdate()
ケース項目、ケースフィード、またはケース関連のリストデータが [ケー
スフィード] ページで変更されるとコールされる関数を登録します。
refreshObject()
ケース項目、ケースフィード、またはケース関連のリストデータが変更
されたことを [ケースフィード] ページに通知し、これらをページで強制
的に更新します。
getPageInfo()
使用方法
現在のページに関する情報を JSON 文字列として返します。
構文
sforce.interaction.getPageInfo(callback:function);
引数
名前
型
説明
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
17
Salesforce アプリケーション操作用のメソッド
isInConsole()
var callback = function (response) {
if (response.result) {
alert(response.result);
} else {
alert(response.error);
}
};
function getPageInfo() {
//Invokes API method
sforce.interaction.getPageInfo(callback);
}
</script>
</head>
<body>
<button onclick="getPageInfo();">getPageInfo</button>
</body>
</html>
応答
名前
型
説明
result
string
現在のページの URL を JSON 文字列として返します。該当するオブ
ジェクト ID、オブジェクト名、およびオブジェクト種別が含まれま
す。次に例を示します。
{"url":"http://na1.salesforce.com/001x0000003DGQR",
"objectId":"001x0000003DGQR","objectName":"Acme",
"object":"Account"}
API バージョン 31.0 以降では、個人取引先オブジェクトで API メソッ
ドを呼び出すと次の追加情報を返します。
• accountId または contactId (関連する取引先または取引先責任者の
ID)
• personAccount (オブジェクトが個人取引先の場合は true、それ以
外の場合は false)
次に例を示します。
{"url":"http://na1.salesforce.com/001x0000003DGQR",
"objectId":"001x0000003DGQR","objectName":"Acme Person
Account",
"object":"Account", "contactId":"003D000000QOMqg",
"personAccount":true}
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
isInConsole()
使用方法
ソフトフォンが Salesforce コンソールにあるかどうかを示します。詳細は、Salesforce オンラインヘルプの「Salesforce
コンソールの概要」を参照してください。
18
Salesforce アプリケーション操作用のメソッド
isInConsole()
メモ: このメソッドはマルチモニターコンポーネントが有効になっている Salesforce コンソール で使用さ
れる場合、ポップアウトしたソフトフォンコンポーネントはコンソール内にあるものとして示されます。
詳細は、オンラインヘルプの「Salesforce コンソールのマルチモニターコンポーネントの有効化」を参照
してください。
構文
sforce.interaction.isInConsole(callback:function)
引数
名前
型
説明
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert('User is in console.');
}
else {
alert('User is not in console.');
}
};
</script>
</head>
<body>
<button onclick="sforce.interaction.isInConsole(callback);">isInConsole</button>
</body>
</html>
応答
このメソッドは非同期であるため、コールバックメソッドのオブジェクトで応答を返します。応答オブジェクト
には次の項目が含まれます。
名前
型
説明
result
boolean
ソフトフォンが Salesforce コンソール にある場合は true、ソフトフォ
ンが Salesforce コンソール にない場合は false。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
19
Salesforce アプリケーション操作用のメソッド
isVisible()
isVisible()
使用方法
ソフトフォンが表示される場合は true、非表示の場合は false を返します。
構文
sforce.interaction.isVisible(callback:function)
引数
名前
型
説明
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert('SoftPhone is visible');
} else {
alert('SoftPhone is not visible');
}
};
function isVisible() {
sforce.interaction.isVisible(callback);
}
</script>
</head>
<body>
<button onclick="isVisible();">isVisible</button>
</body>
</html>
応答
名前
型
説明
result
boolean
ソフトフォンが表示される場合は true、非表示の場合は false。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
20
Salesforce アプリケーション操作用のメソッド
notifyInitializationComplete()
notifyInitializationComplete()
使用方法
Salesforce に、ソフトフォンの初期化が完了したことと、Salesforce がスタンバイ URL に切り替えないようにする
ことを通知します。ソフトフォンの初期化中は、[ソフトフォン] 領域に読み込み中アイコンが表示されます。ス
タンバイ URL を使用するには、コールセンターの定義ファイルに指定する必要があります。詳細は、「コール
センターの省略可能な要素と属性」 (ページ 11)を参照してください。
構文
sforce.interaction.cti.notifyInitializationComplete()
引数
なし。
サンプルコード
<html>
<head>
<script
src="https://na1-blitz04.soma.salesforce.com/support/api/29.0/interaction.js"></script>
<script type="text/javascript">
// Invokes API method
sforce.interaction.cti.notifyInitializationComplete();
</script>
</head>
<body>
The interaction framework has been notified that the cti initialization is complete.
</body>
</html>
応答
なし。
onFocus()
使用方法
ブラウザのフォーカスが変更されるとコールされる関数を登録します。Salesforce コンソールでは、主タブまたは
ナビゲーションタブでユーザが移動すると、ブラウザのフォーカスが変更されます。詳細は、Salesforce オンライ
ンヘルプの「Salesforce コンソールの概要」を参照してください。
構文
sforce.interaction.onFocus( listener:function );
21
Salesforce アプリケーション操作用のメソッド
onFocus()
引数
名前
型
説明
listener
function
ブラウザのフォーカスが変更されたときにコールされる JavaScript メ
ソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert(response.result);
}
};
//Invokes API method
sforce.interaction.onFocus(callback);
</script>
</head>
</body>
</html>
応答
このメソッドは非同期であるため、コールバックメソッドのオブジェクトで応答を返します。応答オブジェクト
には次の項目が含まれます。
名前
型
説明
result
string
フォーカスされているページの URL を JSON 文字列として返します。
該当するオブジェクト ID、オブジェクト名、およびオブジェクト種
別が含まれます。次に例を示します。
{"url":"http://salesforce.com/001x0000003DGQR",
"objectId":"001x0000003DGQR","objectName":"Acme",
"object":"Account"}
ページがオブジェクトにフォーカスしていない場合、オブジェクト
ID、オブジェクト名、およびオブジェクトは空になります。
API バージョン 31.0 以降では、個人取引先オブジェクトで API メソッ
ドを呼び出すと次の追加情報を返します。
• accountId または contactId (関連する取引先または取引先責任者の
ID)
• PersonAccount、オブジェクトが個人取引先の場合は true、それ以
外の場合は false
次に例を示します。
{"url":"http://na1.salesforce.com/001x0000003DGQR",
"objectId":"001x0000003DGQR","objectName":"Acme Person
Account",
"object":"Account", "contactId":"003D000000QOMqg",
"personAccount":true}
22
Salesforce アプリケーション操作用のメソッド
refreshPage()
名前
型
説明
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
refreshPage()
使用方法
ページ更新が呼び出された場合は true、それ以外の場合は false を返します。このメソッドが Salesforce コン
ソール内でコールされると、現在の有効なタブが更新されます。このメソッドは、API バージョン 28.0 以降での
み使用できます。
構文
sforce.interaction.refreshPage(callback:function);
引数
名前
型
説明
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/28.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert('Page refresh has been invoked.');
} else {
alert('Page refresh has not been invoked.');
}
};
function refreshPage() {
sforce.interaction.refreshPage(callback);
}
</script>
</head>
<body>
<button onclick="refreshPage();">refreshPage</button>
</body>
</html>
応答
名前
型
説明
result
boolean
ページ更新が呼び出された場合は true、それ以外の場合は false を
返します。
23
Salesforce アプリケーション操作用のメソッド
refreshRelatedList()
名前
型
説明
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
refreshRelatedList()
使用方法
指定された listName を持つ関連リストが更新された場合は true、それ以外の場合は false を返します。この
メソッドが Salesforce コンソール内でコールされると、現在フォーカスのあるビューで指定のリスト名を持つ関
連リストのみが更新されます。このメソッドは、API バージョン 28.0 以降でのみ使用できます。
構文
sforce.interaction.refreshRelatedList(listName:string, callback:function)
引数
名前
型
説明
listName
string
更新する関連リストの名前。たとえば、取引先責任者関連リストの取
引先責任者や活動予定関連リストの活動。
カスタム参照項目から作成されたカスタム関連リストを更新するに
は、listName は、カスタム参照項目の ID を指定する必要がありま
す。
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/28.0/interaction.js"></script>
<script type="text/javascript">
function checkRefreshResult(result) {
if (result.result) {
alert('The related list is refreshed!');
} else {
alert('Cannot refresh the related list with the given listName! Make
sure the listName is correct and the related list is on the page.');
}
}
function refreshActivityRelatedList() {
sforce.interaction.refreshRelatedList('Activity', checkRefreshResult);
}
function refreshHistoryRelatedList() {
sforce.interaction.refreshRelatedList('History', checkRefreshResult);
}
function saveAndRefresh() {
sforce.interaction.saveLog('Task',
24
Salesforce アプリケーション操作用のメソッド
runApex()
'Subject=ImportantTask&WhatId=[15-character ID of an account to which you want to attach
the task]', function(result) {
if (result.result) {
refreshActivityRelatedList();
} else {
alert('Could not save the object! Check the developer console for error
messages.');
}
});
}
</script>
</head>
<body>
<button onclick="refreshHistoryRelatedList();">Refresh History Related List</button>
<button onclick="saveAndRefresh();">Save and Refresh</button>
</body>
</html>
応答
名前
型
説明
result
boolean
指定された名前を持つ関連リストが更新された場合は true、それ以
外の場合は false を返します。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
メモ
•
このメソッドは、<apex:relatedList> から作成された関連リストを更新できません。
•
•
このメソッドは、Salesforce コンソールで上書きされた Visualforce ページからの関連リストを更新できません。
Salesforce コンソール内からコールされると、このメソッドは現在フォーカスされているビュー内でのみ更新
対象の関連リストを検索します。
runApex()
使用方法
Salesforce で公開された Apex クラスから Apex メソッドを実行します。詳細は、Salesforce オンラインヘルプの
「Apex コードの概要」を参照してください。
構文
sforce.interaction.runApex(apexClass:string, methodName:string, methodParams:string,
(optional) callback:function)
引数
名前
型
説明
apexClass
string
実行するメソッドの Apex クラスを指定します。
methodName
string
実行するメソッドを指定します。
25
Salesforce アプリケーション操作用のメソッド
runApex()
名前
型
説明
methodParams
string
メソッドに渡すパラメータを指定します。文字列は、項目と値のペア
を含み、有効なクエリ文字列の形式にする必要があります。たとえ
ば、name=acme&phone=(212) 555-5555 です。
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
1. システム管理者が Apex クラスおよび Apex メソッドを作成します (詳細は Salesforce オンラインヘルプを参照
してください)。
global class AccountRetrieval{
webService static String getAccount(String name) {
List<Account> accounts = new List<Account>();
for (Account account : Database.query('Select Id, Name, phone from Account where Name
like\"' + name + '%\"')){
accounts.add(account);
}
String JSONString = JSON.serialize(accounts);
return JSONString;
}
}
2. サードパーティのソフトフォンがコールできるように、Salesforce の Apex クラスおよび Apex メソッドを作成
した場所で [WSDL の作成] をクリックしてメソッドおよびクラスを公開します。
3. コードをソフトフォンに追加します。
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert(response.result);
} else {
alert(response.error);
}
};
function runApex() {
//Invokes API method
sforce.interaction.runApex('AccountRetrieval', 'getAccount', 'name=acme',
callback);
}
</script>
</head>
<body>
<button onclick="runApex();">runApex</button>
</body>
</html>
4. 出力が返されます。ここでは、取引先 Acme が見つかりました。
[{"attributes":{"type":"Account",
"url":"/services/data/v25.0/sobjects/Account/001x0000003DGQRAA4"},
"Id":"001x0000003DGQRAA4","Name":"Acme","Phone":"(212) 555-5555"}]
26
Salesforce アプリケーション操作用のメソッド
saveLog()
応答
名前
型
説明
result
string
指定された Apex クラスからメソッドを実行した結果を返します。
返される形式の指定はできません。形式は、実行されたメソッドの値
によって決定されます。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
saveLog()
使用方法
オブジェクトを Salesforce で保存または更新します。
構文
sforce.interaction.saveLog(object:string, saveParams:string, (optional)callback:function)
引数
名前
型
説明
object
string
保存または更新対象のオブジェクトの名前。
saveParams
string
保存または更新対象のオブジェクトの項目を指定します。
オブジェクトの ID が指定されると、レコードが更新されます。たと
えば、Id=001D000000J6qIX&Name=Acme&Phone=4154561515 です。
オブジェクトの ID が指定されない場合、新しいレコードが作成され
ます。たとえば、Name=Acme&Phone=4154561515 です。
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert(response.result);
} else {
alert(response.error);
}
}
function saveLog() {
//Invokes API method
sforce.interaction.saveLog('Account','Name=NewAccountName&Phone=4155551212',
27
Salesforce アプリケーション操作用のメソッド
screenPop()
callback);
}
</script>
</head>
<button onclick="saveLog();">saveLog</button>
</html>
応答
名前
型
説明
result
boolean
オブジェクトが正常に保存または更新された場合は true、オブジェ
クトが正常に保存または更新されなかった場合は false。
id
string
新たに作成されたオブジェクトの ID。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
screenPop()
使用方法
対象 URL (相対である必要がある) にポップします。
構文
sforce.interaction.screenPop(url:string, force:boolean, (optional) callback:function)
引数
名前
型
説明
url
string
相対 URL。画面ポップの場所を指定します。
force
boolean
画面ポップを強制的に表示するには値を true に設定し、それ以外の
場合は false に設定します。この引数は、API バージョン 28.0 以降
でのみ使用できます。
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/28.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert('Screen pop was set successfully.');
}
else {
alert('Screen pop failed.' + result.error);
28
Salesforce アプリケーション操作用のメソッド
searchAndGetScreenPopUrl()
}
};
function screenPop() {
//Invokes API method
sforce.interaction.screenPop('/001x0000003DGQR', true, callback);
}
</script>
</head>
<body>
<!-- Note that '001x0000003DGQR' is an example of an object Id to screen pop. -->
<button onclick="screenPop();">screen pop to entity Id</button>
</body>
</html>
応答
名前
型
説明
result
boolean
画面ポップが正常に表示された場合は true、正常に表示されなかっ
た場合は false。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
searchAndGetScreenPopUrl()
使用方法
特定の文字列に対してソフトフォンレイアウトで指定されたオブジェクトを検索します。検索結果と、ポップ画
面への相対 URL を返します。このメソッドは、実際の画面ポップを実行しません。このメソッドは、ソフトフォ
ンレイアウトで定義された画面ポップ設定を優先します。詳細は、Salesforce オンラインヘルプの「カスタムソフ
トフォンレイアウトの設計」を参照してください。このメソッドは、API バージョン 28.0 以降でのみ使用できま
す。
構文
sforce.interaction.searchAndGetScreenPopUrl(searchParams:string, queryParams:string,
callType:string, callback:function)
引数
名前
型
説明
searchParams
string
検索対象の文字列。
queryParams
string
URL に渡すクエリパラメータを指定します。
callType
string
着信、発信、内線、または null などの通話種別を指定します。通話種
別は、ソフトフォンレイアウトでの設定ごとに、語句検索を行うオブ
ジェクトを決定します。詳細は、Salesforce オンラインヘルプの「カス
タムソフトフォンレイアウトの設計」を参照してください。
callType が null の場合、デフォルトで着信を検索します。callType
が内線または発信の場合、画面ポップは表示されません。
29
Salesforce アプリケーション操作用のメソッド
searchAndGetScreenPopUrl()
名前
型
説明
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/28.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert(response.result);
} else {
alert(response.error);
}
};
function searchAndGetScreenPopUrl() {
//Invokes API method
sforce.interaction.searchAndGetScreenPopUrl('Acme',
'Key1=value1&Key2=value2', 'inbound', callback);
}
</script>
</head>
<body>
<button onclick="searchAndGetScreenPopUrl();">searchAndGetScreenPopUrl</button>
</body>
</html>
応答
名前
型
説明
result
string
検索結果に一致するオブジェクトのリストと画面ポップへの URL
(screenPopUrl) を返します。検索は、ソフトフォンレイアウトで指
定されたオブジェクトで実行されます。検出されたオブジェクトごと
に、オブジェクト ID、項目名、および項目値が JSON 文字列として
返されます。
次に、「Acme」を検索し、1 つの取引先オブジェクトと 3 つの商談オ
ブジェクトが検出された例を示します。
{"006x0000001ZcyG":{"Name":"Acme - 600
Widgets","object":"Opportunity"},
"001x0000003DGQR":{"Name":"Acme","Type":"1","object":"Account"},
"006x0000001ZcyH":{"Name":"Acme - 200
Widgets","object":"Opportunity"},
"006x0000001ZcyF":{"Name":"Acme - 1,200
Widgets","object":"Opportunity"},
screenPopUrl:"/search/SearchResults?searchType=2&str=Acme"}
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
30
Salesforce アプリケーション操作用のメソッド
searchAndScreenPop()
searchAndScreenPop()
使用方法
特定の文字列に対してソフトフォンレイアウトで指定されたオブジェクトを検索します。検索結果を返し、一致
するレコードが画面にポップされます。このメソッドは、ソフトフォンレイアウトで定義された画面ポップ設定
を優先します。詳細は、Salesforce オンラインヘルプの「カスタムソフトフォンレイアウトの設計」を参照してく
ださい。
構文
sforce.interaction.searchAndScreenPop(searchParams:string, queryParams:string,
callType:string, (optional) callback:function);
引数
名前
型
説明
searchParams
string
検索対象の文字列。
queryParams
string
URL に渡すクエリパラメータを指定します。
callType
string
着信、発信、内線、または null などの通話種別を指定します。通話種
別は、ソフトフォンレイアウトでの設定ごとに、語句検索を行うオブ
ジェクトを決定します。詳細は、Salesforce オンラインヘルプの「カス
タムソフトフォンレイアウトの設計」を参照してください。
callType が null の場合、デフォルトで着信を検索します。callType
が内線または発信の場合、画面ポップは表示されません。
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert(response.result);
} else {
alert(response.error);
}
};
function searchAndScreenPop() {
//Invokes API method
sforce.interaction.searchAndScreenPop('Acme', 'Key1=value1&Key2=value2',
'inbound', callback);
}
</script>
</head>
<body>
<button onclick="searchAndScreenPop();">searchAndScreenPop</button>
31
Salesforce アプリケーション操作用のメソッド
refreshObject()
</body>
</html>
応答
名前
型
説明
result
string
検索結果に一致するオブジェクトのリストを返します。検索は、ソフ
トフォンレイアウトで指定されたオブジェクトで実行されます。検出
されたオブジェクトごとに、オブジェクト ID、項目名、および項目
値が JSON 文字列として返されます。
次に、「Acme」を検索し、1 つの取引先オブジェクトと 3 つの商談オ
ブジェクトが検出された例を示します。
{"006x0000001ZcyG":{"Name":"Acme - 600
Widgets","object":"Opportunity"},
"001x0000003DGQR":{"Name":"Acme","Type":"1","object":"Account"},
"006x0000001ZcyH":{"Name":"Acme - 200
Widgets","object":"Opportunity"},
"006x0000001ZcyF":{"Name":"Acme - 1,200
Widgets","object":"Opportunity"}}
API バージョン 31.0 以降では、個人取引先オブジェクトで API メソッ
ドを呼び出すと追加情報を返します。
{"001D000000JWAW8":{"Name":"Acme","contactId":"003D000000QNwDB",
"Type":"1","object":"Account","personAccount":true}}
string
error
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
refreshObject()
使用方法
ケース項目、ケースフィード、またはケース関連のリストデータが変更されたことを [ケースフィード] ページに
通知し、これらをページで強制的に更新します。
メモ: [ケースフィード] のカスタムパブリッシャーとして使用する Visualforce ページでこのメソッドを使
用します。
構文
sforce.interaction.entityFeed.refreshObject(
objectId:string,
refreshFields:boolean,
refreshRelatedLists:boolean,
refreshFeed:boolean,callback:function)
32
Salesforce アプリケーション操作用のメソッド
setVisible()
引数
名前
型
説明
objectId
string
ケースオブジェクトのレコード ID。
refreshFields
boolean
ケースの 1 つ以上の項目が変更されたことを示します。
refreshRelatedLists
boolean
1 つ以上のケース関連リストが変更されたことを示します。
refreshFeed
boolean
ケースフィードが変更されたことを示します。
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<apex:page standardController="Case">
<apex:includeScript value="/support/api/26.0/interaction.js"/>
<a href="javascript:void(0);"
onclick="sforce.interaction.entityFeed.refreshObject('{!case.id}', true, true, true,
function(response) {alert('Case was updated: ' + response.result);});">Refresh Case</a>
</apex:page>
応答
このメソッドは非同期であるため、コールバックメソッドのオブジェクトで応答を返します。応答オブジェクト
には次の項目が含まれます。
名前
型
説明
result
boolean
[ケースフィード] ページが正常に更新された場合は true、それ以外
の場合は false。
setVisible()
使用方法
Salesforce コンソールで、ソフトフォンを表示するか非表示にします。詳細は、Salesforce オンラインヘルプの
「Salesforce コンソールの概要」を参照してください。
メモ: このメソッドが、マルチモニターコンポーネントが有効になっている Salesforce コンソール で使用
されると、エラーが返されます。詳細は、オンラインヘルプの「Salesforce コンソールのマルチモニター
コンポーネントの有効化」を参照してください。
構文
sforce.interaction.setVisible(value:boolean, (optional) callback:function)
33
Salesforce アプリケーション操作用のメソッド
onObjectUpdate()
引数
名前
型
説明
value
boolean
ソフトフォンを表示するには値を true に設定し、ソフトフォンを非
表示にするには値を false に設定します。
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert(response.result);
} else {
alert(response.error);
}
};
function setVisible(value) {
sforce.interaction.setVisible(value, callback);
}
</script>
</head>
<body>
<button onclick="setVisible(false);">hide softphone</button>
</body>
</html>
応答
名前
型
説明
result
boolean
ソフトフォンの表示または非表示が正常に行われた場合は true、ソ
フトフォンの表示または非表示が正常に行われなかった場合は false。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
onObjectUpdate()
使用方法
ケース項目、ケースフィード、またはケース関連のリストデータが [ケースフィード] ページで変更されるとコー
ルされる関数を登録します。
メモ: [ケースフィード] のカスタムパブリッシャーとして使用する Visualforce ページでこのメソッドを使
用します。
34
Salesforce アプリケーション操作用のメソッド
onObjectUpdate()
構文
sforce.interaction.entityFeed.onObjectUpdate(callback:function)
引数
名前
型
説明
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<apex:page standardController="Case">
<apex:includeScript value="/support/api/26.0/interaction.js"/>
<script type="text/javascript">
var callback = function(response) {
alert('Case was updated. Fields = ' + response.fieldsUpdated +
' Related lists = ' + response.relatedListsUpdated + ' Feed = ' +
response.feedUpdated);
};
//Invokes API method
sforce.interaction.entityFeed.onObjectUpdate(callback);
</script>
</apex:page>
応答
このメソッドは非同期であるため、コールバックメソッドのオブジェクトで応答を返します。応答オブジェクト
には次の項目が含まれます。
名前
型
説明
fieldsUpdated
boolean
1 つ以上のケース項目が更新された場合は true。
relatedListsUpdated
boolean
1 つ以上のケース関連リストが更新された場合は true。
feedUpdated
boolean
ケースフィードが更新された場合は true。
35
第5章
コンピュータテレフォニーインテグレーション (CTI) のメソッド
Open CTI を使用すると、CTI システムを Salesforce に統合できます。CTI についての詳細は、Salesforce オンラ
インヘルプの「コールセンターの概要」を参照してください。
次のメソッドを使用して、CTI システムを Salesforce に統合します。
メソッド
説明
disableClickToDial()
クリック-to-ダイヤルを無効にします。
enableClickToDial()
クリック-to-ダイヤルを有効にします。
getCallCenterSettings()
コールセンター定義ファイル内のコールセンターの設定を JSON 文字列と
して返します。
getDirectoryNumbers()
コールセンターのディレクトリから電話番号のリストを返します。
getSoftphoneLayout()
ソフトフォンレイアウトを JSON 文字列として返します。ソフトフォンレ
イアウトについての詳細は、Salesforce オンラインヘルプの「カスタムソフ
トフォンレイアウトの設計」を参照してください。
onClickToDial()
有効化された電話番号をユーザがクリックするとコールされる関数を登録
します。
setSoftphoneHeight()
ソフトフォンの高さ (ピクセル単位) を設定します。
setSoftphoneWidth()
Salesforce コンソールのソフトフォンの幅 (ピクセル単位) を設定します。詳
細は、Salesforce オンラインヘルプの「Salesforce コンソールの概要」を参照
してください。
disableClickToDial()
使用方法
クリック-to-ダイヤルを無効にします。
構文
sforce.interaction.cti.disableClickToDial( (optional) callback:function )
36
コンピュータテレフォニーインテグレーション (CTI) の
メソッド
enableClickToDial()
引数
名前
タイプ
説明
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert('Click to dial was disabled.');
} else {
alert('Click to dial was not disabled.');
}
};
function disableClickToDial() {
//Invokes API method
sforce.interaction.cti.disableClickToDial(callback);
}
</script>
</head>
<body>
<button onclick="disableClickToDial();">disable click to dial</button>
</body>
</html>
応答
このメソッドは非同期であるため、コールバックメソッドのオブジェクトで応答を返します。応答オブジェクト
には次の項目が含まれます。
名前
型
説明
result
boolean
クリック-to-ダイヤルが無効にされた場合は true、クリック-to-ダイ
ヤルが無効にされなかった場合は false。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
enableClickToDial()
使用方法
クリック-to-ダイヤルを有効にします。
構文
sforce.interaction.cti.enableClickToDial( (optional) callback:function )
37
コンピュータテレフォニーインテグレーション (CTI) の
メソッド
getCallCenterSettings()
引数
名前
型
説明
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert('Click to dial was enabled.');
} else {
alert('Click to dial was not enabled.');
}
};
function enableClickToDial() {
//Invokes API method
sforce.interaction.cti.enableClickToDial(callback);
}
</script>
</head>
<body>
<button onclick="enableClickToDial();">enable click to dial</button>
</body>
</html>
応答
このメソッドは非同期であるため、コールバックメソッドのオブジェクトで応答を返します。応答オブジェクト
には次の項目が含まれます。
名前
型
説明
result
boolean
クリック-to-ダイヤルが有効にされた場合は true、クリック-to-ダイ
ヤルが有効にされなかった場合は false。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
getCallCenterSettings()
使用方法
コールセンター定義ファイル内のコールセンターの設定を JSON 文字列として返します。詳細は、「コールセン
ター定義ファイル」 (ページ 8)を参照してください。
構文
sforce.interaction.cti.getCallCenterSettings(callback:function)
38
コンピュータテレフォニーインテグレーション (CTI) の
メソッド
getDirectoryNumbers()
引数
名前
型
説明
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
alert(response.result);
}
//Calls getCallCenterSettings
sforce.interaction.cti.getCallCenterSettings(callback);
</script>
</head>
<body></body>
</html>
応答
このメソッドは非同期であるため、コールバックメソッドのオブジェクトで応答を返します。応答オブジェクト
には次の項目が含まれます。
名前
型
説明
result
string
API コールが正常に行われた場合、コールセンターの設定定義が JSON
文字列として返されます。API コールが失敗した場合、null が返され
ます。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
getDirectoryNumbers()
使用方法
コールセンターのディレクトリから電話番号のリストを返します。このメソッドは、API バージョン 31.0 以降で
のみ使用できます。
構文
sforce.interaction.cti.getDirectoryNumbers(isGlobal:boolean, callCenterName:String,
(optional) callback:function, (optional) resultSetPage:Integer, (optional)
resultSetPageSize:Integer)
39
コンピュータテレフォニーインテグレーション (CTI) の
メソッド
getDirectoryNumbers()
引数
名前
型
説明
isGlobal
boolean
グローバルコールセンター名からディレクトリ番号を返すには値を
true に設定し、コールセンター固有のディレクトリ番号を返すには
値を false に設定します。
callCenterName
string
ディレクトリ番号を返すコールセンター名を指定します。isGlobal
が false に設定されていて、この項目が指定されない場合、すべての
ディレクトリ番号が返されます。
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
resultSetPage
integer
返される結果のリストのページ番号を表します。この番号は 0 から開
始します。
resultSetPageSize
integer
検索する電話番号の最大数を設定します。これはデフォルトでは 5000
に設定されていて、最大数は 10000 です。hasNext が callback で
true を返す場合、この引数を resultSetPage と一緒に使用して、結
果の次のページを取得します。たとえば、resultSetPageSize が
5000 に設定されていて、resultSetPage が 0 に設定されている場合、
最初の 5000 件の電話番号が返されます。resultSetPage が 1 に設定
されている場合、次の 5000 件の電話番号が返されます。
サンプルコード – JavaScript
<html>
<head>
<script src="https://domain:port/support/api/31.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert(response.result);
} else {
alert(response.error);
}
};
var isGlobal = false; //Do not return directories from the global call center
var callCenterName = ‘My Call Center’; //Call center name of directory numbers to
return
function getDirectoryNumbers() {
sforce.interaction.cti.getDirectoryNumbers(isGlobal, callCenterName,
callback);
}
</script>
</head>
<body>
<button onclick="getDirectoryNumbers();">Get Directory Numbers</button>
</body>
</html>
40
コンピュータテレフォニーインテグレーション (CTI) の
メソッド
getSoftphoneLayout()
応答
名前
型
説明
result
string
指定されたコールセンター名から電話番号のリストを表す JSON 文字
列を返します。各電話番号要素には、コールセンター名、電話番号、
および説明が含まれます。次に例を示します。
{ directoryNumbers:
[
{callCenterName:'Demo Call Center', name:'Sales
Cloud', phone:'415-555-1212', description:'Sales Cloud
additional number'},
{callCenterName:'Demo Call Center 2', name:'Service
Cloud', phone:'415-555-3434', description:'Service Cloud
additional number'},
],
hasNext: false
}
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
getSoftphoneLayout()
使用方法
ソフトフォンレイアウトを JSON 文字列として返します。ソフトフォンレイアウトについての詳細は、Salesforce
オンラインヘルプの「カスタムソフトフォンレイアウトの設計」を参照してください。このメソッドは、API
バージョン 27.0 以降でのみ使用できます。
構文
sforce.interaction.cti.getSoftphoneLayout(callback:function);
引数
名前
型
説明
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/27.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
alert(response.result);
}
// Calls getSoftphoneLayout
sforce.interaction.cti.getSoftphoneLayout(callback);
</script>
41
コンピュータテレフォニーインテグレーション (CTI) の
メソッド
getSoftphoneLayout()
</head>
<body></body>
</html>
応答
このメソッドは非同期であるため、コールバックメソッドのオブジェクトで応答を返します。応答オブジェクト
には次の項目が含まれます。
名前
型
説明
result
string
API コールが正常に行われた場合、ソフトフォンレイアウト定義が
JSON 文字列として返されます。API コールが失敗した場合、null が
返されます。
返された JSON 文字列には、各通話種別を表す 3 つの要素が含まれま
す。
•
•
•
"Internal"
"Inbound"
"Outbound"
各通話種別には 3 つのサブセクションが含まれます。
•
"callRelatedFields" — 表示対象として選択された通話関連項
目の配列。使用できる値
は、"ANI"、"DNIS"、"SEGMENT"、"QUEUE" です。
•
"objects" — 表示対象として選択された Salesforce オブジェクト
のセット。各オブジェクトから表示対象として選択された [項目表
示ラベル] および [項目名] (API 名) も含まれます。
•
"screenPopSettings" — このオブジェクトに
は、"ExistingWindow" または "NewWindow" のいずれかの値を持
つ "screenPopsOpenWithin" 項目が含まれます。また、画面ポッ
プの一致した種類
("NoMatch"、"SingleMatch"、"MultipleMatches") ごとにその
設定も含まれます。一致した各種類には、対応する
"screenPopType" 項目が含まれ、さらに、"screenPopData" 項
目が含まれる場合もあります。"screenPopType" に
"PopToEntity" という値が指定されている場合、"screenPopData"
には対象オブジェクトの名前が含まれます。"screenPopType" に
"PopToVisualforce" という値が指定されている場
合、"screenPopData" には対象の Visualforce ページの名前が含ま
れます。"screenPopType" に "PopToSearch" という値が指定さ
れている場合、"screenPopData" 項目は存在しません。
次に、JSON 応答の例を示します。
"Internal" : {
"callRelatedFields" : [
"ANI",
"DNIS",
]
"objects" : {
"User" : [ {
42
コンピュータテレフォニーインテグレーション (CTI) の
メソッド
名前
型
onClickToDial()
説明
"displayName" : "Name",
"apiName" : "Name"
}
]
},
"screenPopSettings" : {}
},
"Inbound" : {
"callRelatedFields" : [
"ANI",
"DNIS",
"SEGMENT",
"QUEUE"
],
"objects" : {
"Account" : [ {
"displayName" : "Account Name",
"apiName" : "Name"
}
]
},
"screenPopSettings" : {
"NoMatch" : {
"screenPopType" : "PopToEntity",
"screenPopData" : "Contact"
},
"SingleMatch" : {
"screenPopType" : "PopToVisualforce",
"screenPopData" : "Visualforce_Page_Name"
},
"MultipleMatches" : {
"screenPopType" : "PopToSearch"
}
}
},
"Outbound" : {
"callRelatedFields" : [
"DNIS"
],
"objects" : {
"Account" : [ {
"displayName" : "Account Name",
"apiName" : "Name"
}
]
},
"screenPopSettings" : {}
}
}
error
string または
未定義
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
onClickToDial()
使用方法
有効化された電話番号をユーザがクリックするとコールされる関数を登録します。
43
コンピュータテレフォニーインテグレーション (CTI) の
メソッド
setSoftphoneHeight()
構文
sforce.interaction.cti.onClickToDial( listener:function )
引数
名前
型
説明
listener
function
ユーザが電話番号をクリックしたときにコールされる JavaScript メソッ
ド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var listener = function (response) {
if (response.result) {
alert('User clicked on a phone number.' + response.result );
}
};
//Invokes API method
sforce.interaction.cti.onClickToDial(listener);
</script>
</head>
</html>
応答
このメソッドは非同期であるため、コールバックメソッドのオブジェクトで応答を返します。応答オブジェクト
には次の項目が含まれます。
名前
型
説明
result
string
クリックが発生した場所から、電話番号、オブジェクト ID、および
オブジェクトの名前を JSON 文字列として返します。例:
{"number":"4155551212","objectId":"001x0000003DIGj","object":"Account"}。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
setSoftphoneHeight()
使用方法
ソフトフォンの高さ (ピクセル単位) を設定します。
メモ: このメソッドが、マルチモニターコンポーネントが有効になっている Salesforce コンソール で使用
される場合、マルチモニターコンポーネントのサイズ調整は許可されないためエラーが返されます。詳
細は、オンラインヘルプの「Salesforce コンソールのマルチモニターコンポーネントの有効化」を参照し
てください。
44
コンピュータテレフォニーインテグレーション (CTI) の
メソッド
setSoftphoneWidth()
構文
sforce.interaction.cti.setSoftphoneHeight(height:number, (optional) callback:function)
引数
名前
型
説明
height
number
ソフトフォンの高さ (ピクセル単位) 。高さは 0 以上の数値である必要
があります。
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert('Height was set successfully.');
}
else {
alert('Height was not set successfully.');
}
};
</script>
</head>
<body>
<button onclick="sforce.interaction.cti.setSoftphoneHeight(200, callback);">
set softphone height to 200px
</button>
</body>
</html>
応答
名前
型
説明
result
boolean
高さが正常に設定された場合は true、高さが正常に設定されなかっ
た場合は false。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
setSoftphoneWidth()
使用方法
Salesforce コンソールのソフトフォンの幅 (ピクセル単位) を設定します。詳細は、Salesforce オンラインヘルプの
「Salesforce コンソールの概要」を参照してください。
45
コンピュータテレフォニーインテグレーション (CTI) の
メソッド
setSoftphoneWidth()
メモ: このメソッドが、マルチモニターコンポーネントが有効になっている Salesforce コンソール で使用
される場合、マルチモニターコンポーネントのサイズ調整は許可されないためエラーが返されます。詳
細は、オンラインヘルプの「Salesforce コンソールのマルチモニターコンポーネントの有効化」を参照し
てください。
構文
sforce.interaction.cti.setSoftphoneWidth(width:number, (optional) callback:function)
引数
名前
型
説明
width
number
ソフトフォンの幅 (ピクセル単位) 。幅は 0 以上の数値である必要があ
ります。
callback
function
メソッドの完了時にコールされる JavaScript メソッド。
サンプルコード – JavaScript
<html>
<head>
<script type="text/javascript"
src="http://domain:port/support/api/25.0/interaction.js"></script>
<script type="text/javascript">
var callback = function (response) {
if (response.result) {
alert('Width was set successfully.');
}
else {
alert('Width was not set successfully.');
}
};
</script>
</head>
<body>
<button onclick="sforce.interaction.cti.setSoftphoneWidth(100, callback);">
set softphone width to 100px
</button>
</body>
</html>
応答
このメソッドは非同期であるため、コールバックメソッドのオブジェクトで応答を返します。応答オブジェクト
には次の項目が含まれます。
名前
型
説明
result
boolean
幅が正常に設定された場合は true、幅が正常に設定されなかった場
合は false。
error
string
API コールが正常に行われた場合、この変数は未定義です。API コー
ルが失敗した場合、この変数はエラーメッセージを返します。
46
第6章
用語集
A |B |C |D |E |F |G |H |I |J |K |L |M |N |O |P |Q |R |S |T |U |V |W |X |Y |Z
A
管理者 (システム管理者)
アプリケーションの設定およびカスタマイズができる組織内の 1 人以上のユーザ。システム管理者プロファ
イルに割り当てられているユーザは、管理者権限があります。
アプリケーションプログラムインターフェース (API)
コンピュータシステム、ライブラリ、またはアプリケーションが、その他のコンピュータプログラムがサー
ビスを要求したりデータを交換したりできる機能を提供するインターフェースです。
非同期コール
操作に長い時間がかかるため、直ちに結果を返さないコールです。メタデータ API と Bulk API のコールは
非同期です。
B
Boolean 演算子
Boolean 演算子をレポートプロファイルで使用して、2 つの値の間の論理関係を指定できます。たとえば、
2 つの値の間で AND 演算子を使用すると、両方の値を含む検索結果が生成されます。同様に、2 つの値の
間で OR 演算子を使用すると、どちらかの値を含む検索結果が生成されます。
C
CTI Adapter
Salesforce ソフトフォンの外観と動作を制御する軽量ソフトウェアプログラム。このアダプタは、サードパー
ティの CTI (コンピュータテレフォニーインテグレーション) システム、Salesforce、および Salesforce CRM
Call Center ユーザとの間の仲介ソフトウェアとして動作します。Salesforce CRM Call Center 機能にアクセス
するすべてのコンピュータにインストールする必要があります。
CTI システム
特定のコールセンターのためにコンピュータテレフォニーインテグレーション (CTI) を実装するハードウェ
アおよびソフトウェア。
カスタムリンク
カスタムリンクとは管理者によって定義された URL。これを使用して、Salesforce データを外部 Web サイ
トとバックエンドのオフィスシステムと統合します。以前は Web リンクと呼ばれていました。
47
用語集
D
データベース
情報の編成された集合です。Force.com プラットフォームの基底となるアーキテクチャには、データが格納
されているデータベースが含まれています。
データベーステーブル
追跡する必要のある人物、物事、またはコンセプトに関する情報のリストで、行および列で表示されます。
「オブジェクト」も参照してください。
Developer Force
Developer Force Web サイト (developer.salesforce.com) では、サンプルコード、ツールキット、オンライン開
発者コミュニティなど、プラットフォーム開発者向けの幅広いリソースを提供しています。開発向けの
Force.com プラットフォーム環境も、ここから入手できます。
E
F
項目
テキストまたは通貨の値など、情報の特定の部分を保持するオブジェクトの一部です。
項目レベルセキュリティ
項目が、ユーザに非表示、表示、参照のみ、または編集可能であるかどうかを決定する設定です。Enterprise
Edition、Unlimited Edition、Performance Edition、Developer Edition でのみ使用できます。
Force.com
クラウドでアプリケーションを構築する salesforce.com プラットフォームです。Force.com は、強力なユーザ
インターフェース、オペレーティングシステムおよびデータベースを結合して、企業全体でアプリケーショ
ンをカスタマイズおよび展開できます。
G
Group Edition
ユーザ数が制限された小規模ビジネスやワークグループに設計された製品。
H
該当用語はありません。
I
ID
「Salesforce レコード ID」を参照してください。
インスタンス
組織のデータをホストし、アプリケーションを実行する単一の論理サーバとして示されるソフトウェアお
よびハードウェアのクラスタです。Force.com プラットフォームは複数のインスタンスで稼動しますが、1
つの組織のデータは常に 1 つのインスタンスに一元管理されています。
48
用語集
相互関係ログ
ボタンをクリックしたり、新しいタブを参照したり、[メモ & 添付ファイル] 関連リストまでスクロールし
たりせずに、作業中の主たるレコードに関するメモをさっと書き込める Salesforce コンソール内の場所。相
互関係ログは、簡単に確認や修正ができるよう、活動履歴関連リストにアーカイブされます。管理者は、
相互関係ログをカスタマイズして、ToDo 項目を含めることができます。
J
該当用語はありません。
K
該当用語はありません。
L
ログインユーザ
SOAP API コンテキストで、Salesforce にログインするために使用するユーザ名です。クライアントアプリ
ケーションは、ログインユーザの権限および共有設定に基づいて動作します。また、インテグレーション
ユーザとも呼ばれます。
M
メタデータ
組織および組織のいずれかの部分の構造、外観、機能に関する情報。Force.com では、メタデータを記述す
るのに XML を使用します。
マルチテナンシー
すべてのユーザおよびアプリケーションが単一で共通のインフラストラクチャおよびコードベースを共有
するアプリケーションモデルです。
N
移動タブ
Salesforce コンソールのドロップダウンボタンを持つタブ。オブジェクトのホームページを選択して表示で
きます。
O
オブジェクト
Salesforce 組織に情報を保存するために使用するオブジェクトです。オブジェクトは、保存する情報の種類
の全体的な定義です。たとえば、ケースオブジェクトを使用して、顧客からの問い合わせに関する情報を
保存できます。各オブジェクトについて、組織は、そのデータ型の具体的なインスタンスに関する情報を
保存する複数のレコードを保有します。たとえば、佐藤次郎さんから寄せられたトレーニングに関する問
い合わせに関する情報を保存するケースレコードと、山田花子さんから寄せられたコンフィグレーション
の問題に関する情報を保存するケースレコードなどです。
49
用語集
組織
ライセンスユーザセットが定義された Salesforce のリリース。組織は、salesforce.com の各お客様に提供され
る仮想スペースです。組織には、すべてのデータおよびアプリケーションが含まれており、他のすべての
組織から独立しています。
P
Platform Edition
セールスやサービス & サポートなどの標準 Salesforce CRM アプリケーションを含まない Enterprise Edition、
Unlimited Edition、または Performance Edition に基づいた Salesforce エディションです。
主タブ
取引先など、作業する主たる項目を表示する Salesforce コンソールのタブ。
本番組織
実際の本番データとそれらにアクセスするライブユーザを持っている Salesforce 組織。
Q
該当用語はありません。
R
レコード
Salesforce オブジェクトの単一インスタンスです。たとえば、「John Jones」は取引先責任者レコードの名前
となります。
S
Salesforce レコード ID
Salesforce の 1 つのレコードを識別する 15 文字または 18 文字の一意の英数字文字列。
Sandbox 組織
Salesforce 本番組織のほぼ同一コピー。テストやトレーニングなどさまざまな目的のために、本番組織のデー
タとアプリケーションに影響を与えることなく、複数の Sandbox をそれぞれの環境に作成できます。
Salesforce コンソール
Salesforce コンソールは、レコードの検索、更新、作成をすばやく行う必要のある、変化の速い環境にある
ユーザ向けに設計されています。レコードと関連項目をタブとして 1 つの画面に表示することによって、
[コンソール] タブのエージェントコンソールを改善したものです。
セッション ID
ユーザが Salesforce に正常にログインした場合に返される認証トークン。セッション ID を使用すると、ユー
ザが Salesforce で別のアクションを実行するときに再度ログインする必要がなくなります。レコード ID ま
たは Salesforce ID と異なり、Salesforce レコードの一意の ID を示す用語です。
セッションタイムアウト
ログインしてからユーザが自動的にログアウトするまでの時間です。セッションは、前もって決定された
非活動状態の期間の後、自動的に終了します。非活動状態の期間の長さは、Salesforce の [設定] から [セキュ
リティのコントロール] をクリックして設定できます。デフォルト値は 120 分 (2 時間) です。ユーザが Web
50
用語集
インターフェースでアクションを実行または API コールを実行すると、非活動状態タイマーが 0 にリセッ
トされます。
SOAP (Simple Object Access Protocol)
XML 符号化データを渡す一定の方法を定義するプロトコル。
ソフトフォン
Salesforce CRM Call Center ユーザに対して、Salesforce ページのサイドバーまたは Salesforce コンソールの
フッターに表示される電話インターフェース。
標準オブジェクト
Force.com プラットフォームに含まれる組み込みオブジェクト。アプリケーション独自の情報を格納するカ
スタムオブジェクトを作成することもできます。
システムログ
開発者コンソールの一部。コードスニペットのデバッグに使用できる独立したウィンドウ。ウィンドウの
下部にテストするコードを入力して、[実行] をクリックします。システムログの本文には、実行する行の長
さや、作成されたデータベースコール数などのシステムリソース情報が表示されます。コードが完了しな
かった場合は、コンソールにデバッグ情報が表示されます。
T
テスト組織
テスト目的でのみ使用される Salesforce 組織。「Sandbox 組織」も参照してください。
トリガ
データベースの特定の種別のレコードが挿入、更新、または削除される前後で実行する Apex スクリプトで
す。各トリガは、トリガが実行されるレコードへのアクセス権限を提供する一連のコンテキスト変数で実
行し、すべてのトリガは一括モードで実行します。つまり、一度に 1 つずつレコードを処理するのではな
く、複数のレコードを一度に処理します。
U
V
バージョン
項目のリリースを示す数値。バージョンを表示できる項目は、API オブジェクト、項目およびコール、Apex
クラスおよびトリガ、Visualforce ページおよびコンポーネントです。
Visualforce
開発者が、プラットフォームに作成されたアプリケーションのカスタムページおよびコンポーネントを容
易に定義できる、単純で、タグベースのマークアップ言語。各タグが、ページのセクション、関連リスト、
または項目など、大まかなコンポーネントときめの細かいコンポーネントのどちらにも対応しています。
コンポーネントの動作は、標準の Salesforce ページと同じロジックを使用して制御することも、開発者が独
自のロジックを Apex で記述されたコントローラと関連付けることもできます。
51
用語集
W
Web サービス
2 つのアプリケーションが、異なるプラットフォームで稼動していたり、異なる言語で作成されていたり、
地理的に離れた場所に存在していたりする場合でも、インターネットを経由してデータを容易に交換でき
るメカニズムです。
Web サービス API
Salesforce 組織の情報へのアクセスを提供する Web サービスアプリケーションプログラミングインターフェー
ス。「SOAP API」および「Bulk API」も参照してください。
ラッパークラス
ログイン、セッションの管理、レコードのクエリおよびバッチなど、一般的な機能を抽象化するクラス。
ラッパークラスを使用すると、インテグレーションでより容易にプログラムロジックを開発、保持、およ
び一か所に保存でき、コンポーネント間で容易に再利用できるようになります。Salesforce のラッパークラ
スの例として、Salesforce SOAP API の JavaScript ラッパーである AJAX Toolkit、Salesforce CRM Call Center
の CTI Adapter で使用される CCritical Section などのラッパークラス、または SOAP API を使用して
Salesforce にアクセスするクライアントインテグレーションアプリケーションの一部として作成されたラッ
パークラスなどがあります。
WSDL (Web Services Description Language) ファイル
Web サービスとの間で送受信するメッセージの形式を記述する XML ファイル。開発環境の SOAP クライ
アントは、Salesforce Enterprise WSDL または Partner WSDL を使用して、SOAP API で Salesforce と通信し
ます。
X
該当用語はありません。
Y
該当用語はありません。
Z
該当用語はありません。
52
Fly UP