1.API認証情報
各APIを実行するあたりに、API認証が求められます。
API認証を行うために以下の項目が必須になります。
・会社アカウントID ・会社アカウント名 ・会社アカウントパスワード |
※API認証用項目はSimpleConnectアカウント発行時に別途お伝えします。
※これらの項目はAPI利用するための認証情報であり、SimpleConnect画面のログイン情報ではないのでご注意ください。
API認証は、動的な電子署名をAPIエンドポイントURLのQuery Parameterに追加し、加えてリクエストヘッダーのAuthorizationプロパティを設定する必要があります。「3.電子署名の作成方法」および「4.ヘッダー認証」をご参照ください。
2.API Secretの取得方法
API Secretの有効期限は原則無期限です。
URL
https://api.simpleconnect.jp/dingzhi/register/webSiteQueryAccountInfo/{会社アカウント名}/{会社アカウントパスワード} |
Request Method
GET
Query Parameter
なし
Response
データが正常に返された場合、accountDataからAPISecretを取得できます。
{ "success":true, "accountData":{ "accountPassword":"abcde12345", "account":"N00000099106", "accountName":"......", "pbxArr":[......], "APISecret":"74798d00-b009-11ec-b944-af4a2cb89a94" }, "registerUrl":"https://www.simpleconnect.jp" } |
3.電子署名の作成方法
会社アカウントID + API Secret + yyyyMMddHHmmssフォーマットの現時刻文字列で結合した文字列のMD5ハッシュ(全大文字に変換)
サンプルコード(Node.js)
const crypto = require('crypto'); const accountId = 'N00000099106'; const apiSecret = '74798d00-b009-11ec-b944-af4a2cb89a94'; const now = new Date(); const timeStr = now.getFullYear().toString() + (now.getMonth() + 1).toString().padStart(2, '0') + now.getDate().toString().padStart(2, '0') + now.getHours().toString().padStart(2, '0') + now.getMinutes().toString().padStart(2, '0') + now.getSeconds().toString().padStart(2, '0'); const source = `${accountId}${apiSecret}${timeStr}`; const hash = crypto.createHash('md5'); hash.update(source); const hexVal = hash.digest('hex').toUpperCase(); console.log(hexVal); |
電子署名は、各APIエンドポイントURLのQuery Parameterに加える必要があります:
https://api.simpleconnect.jp/v20220801/{routeName}/{actionName}/会社アカウントID?sig={電子署名}
4.ヘッダー認証
Header Key
Authorization
Header Value
会社アカウントID + ':' + yyyyMMddHHmmssフォーマットの現時刻文字列で結合した文字列のBase64エンコード値 |
※'Bearer'、'Basic'などのプレフィックスは不要
サンプルコード(Node.js)
const accountId = 'N00000099106'; const apiSecret = '74798d00-b009-11ec-b944-af4a2cb89a94'; const now = new Date(); const timeStr = now.getFullYear().toString() + (now.getMonth() + 1).toString().padStart(2, '0') + now.getDate().toString().padStart(2, '0') + now.getHours().toString().padStart(2, '0') + now.getMinutes().toString().padStart(2, '0') + now.getSeconds().toString().padStart(2, '0'); const source = `${accountId}:${time}`; const authorizationValue = Buffer.from(source).toString('base64'); console.log(authorizationValue); |
APIエンドポイントURLフォーマット
https://api.simpleconnect.jp/v20220801/{routeName}/{actionName}/{会社アカウントID}?sig={電子署名} |
API一覧
種別 | 機能 | routeName | actionName |
備考 |
通話 | 発信 | call | dialout | |
通話 | 切電 | call | hangup | |
通話 | 保留 | call | hold | ※最新版のCTIにアップグレードする必要がある |
通話 | 保留解除 | call | unhold | ※最新版のCTIにアップグレードする必要がある |
通話 | 転送 | call | transfer | ※最新版のCTIにアップグレードする必要がある |
通話 | 転送取消 | call | cancelTransfer | ※最新版のCTIにアップグレードする必要がある |
通話履歴 | 通話履歴照会 | cdr | getCCCdr | |
アカウント | サービス番号照会 | account | getCCServiceNoByAcc | |
SMS | SMSテンプレート照会 | sms | getSmsTemplate | |
SMS | SMS送信 | sms | sendInterfaceTemplateSms | ※予約送信は現時点未対応 |
URL
https://api.simpleconnect.jp/v20220801/call/dialout/{会社アカウントID}?sig={電子署名} |
※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。
Request Method
POST
Request Header
Key | Value | 備考 |
Authorization | ヘッダ認証情報 | ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。 |
Content-Type | application/json |
Request Body
パラメータ名 | 必須 | 説明 | 備考 |
Exten | ◯ | 相手電話番号(数字のみ、ハイフン・スペース等抜き) | |
ExtenType | ◯ | 通話タイプ: ・Local:外部転送(スマートフォン) ・gateway:電話ソフト(Zoiper等)または電話機 ・sip:WEBフォン | sipを指定した場合、事前にSimpleConnectにログインしてページを開いたままにする必要があります。 Localまたはgatewayを指定した場合、オフライン応答モードでも発信できます。 |
FromExten | ◯ | 座席番号 | |
Outshow | 発信通知番号(電話相手に表示する番号) 未設定の場合SimpleConnect画面に設定された発信番号が適用される |
Payloadサンプル
{ "ExtenType": "sip", "FromExten": "8001", "Exten": "09012345678", "Outshow": "05050509999" } |
Response
データが正常に返された場合:
{ "Response": "Dialout", "ActionID": "Dialout0.999587317153624", "Succeed": true } |
Succeed = trueの場合、API実行が成功にしたことを示す。
APIエンドポイントURLフォーマット
https://api.simpleconnect.jp/v20220801/call/dialout/{会社アカウントID}?sig={電子署名} |
※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。
Request Method
POST
Request Header
Key | Value | 備考 |
Authorization | ヘッダ認証情報 | ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。 |
Content-Type | application/json |
Request Body
パラメータ名 | 必須 | 説明 | 備考 |
Agent | ◯ | 座席番号 |
Payloadサンプル
{ "Agent": "8001" } |
Response
データが正常に返された場合:
{ "Response": "Hangup", "ActionID": "Hangup0.4047332767562146", "Succeed": true } |
Succeed = trueの場合、API実行が成功にしたことを示す。
URL
https://api.simpleconnect.jp/v20220801/call/hold/{会社アカウントID}?sig={電子署名} |
※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。
Request Method
POST
Request Header
Key | Value | 備考 |
Authorization | ヘッダ認証情報 | ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。 |
Content-Type | application/json |
Request Body
パラメータ名 | 必須 | 説明 | 備考 |
Agent | ◯ | 座席番号 |
Payloadサンプル
{ "Agent": "8001" } |
Response
データが正常に返された場合:
{ "Response": "Hold", "Succeed": true } |
Succeed = trueの場合、API実行が成功にしたことを示す。
URL
https://api.simpleconnect.jp/v20220801/call/unhold/{会社アカウントID}?sig={電子署名} |
※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。
Request Method
POST
Request Header
Key | Value | 備考 |
Authorization | ヘッダ認証情報 | ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。 |
Content-Type | application/json |
Request Body
パラメータ名 | 必須 | 説明 | 備考 |
Agent | ◯ | 座席番号 |
Payloadサンプル
{ "Agent": "8001" } |
Response
データが正常に返された場合:
{ "Response": "Unhold", "Succeed": true } |
Succeed = trueの場合、API実行が成功にしたことを示す。
URL
https://api.simpleconnect.jp/v20220801/call/transfer/{会社アカウントID}?sig={電子署名} |
※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。
Request Method
POST
Request Header
Key | Value | 備考 |
Authorization | ヘッダ認証情報 | ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。 |
Content-Type | application/json |
Request Body
パラメータ名 | 必須 | 説明 | 備考 |
FromExten | ◯ | 座席番号 | |
Exten | ◯ | 転送先電話番号(外線/内線) | 外線:05012345678 内線:8009 |
Mode | ◯ | 転送モード。文字列"number"固定。 |
Payloadサンプル
{ "FromExten": "8001" "Exten": "05012345678" "Mode": "number" } |
Response
データが正常に返された場合:
{ "Response": "Transfer", "Succeed": true } |
Succeed = trueの場合、API実行が成功にしたことを示す。
URL
https://api.simpleconnect.jp/v20220801/call/cancelTransfer/{会社アカウントID}?sig={電子署名} |
※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。
Request Method
POST
Request Header
Key | Value | 備考 |
Authorization | ヘッダ認証情報 | ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。 |
Content-Type | application/json |
Request Body
パラメータ名 | 必須 | 説明 | 備考 |
FromExten | ◯ | 座席番号 |
Payloadサンプル
{ "FromExten": "8001" } |
Response
データが正常に返された場合:
{ "Response": "CancelTransfer", "Succeed": true } |
Succeed = trueの場合、API実行が成功にしたことを示す。
利用制限
一回あたり取得できる最大件数: | 1万件 |
API呼び出し頻度: | 最大20回/分 |
検索条件指定: | オファリングタイムの開始時間~終了時間最大7日間指定可能 |
URL
https://api.simpleconnect.jp/v20220801/cdr/getCCCdr/{会社アカウントID}?sig={電子署名} |
※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。
Request Method
POST
Request Header
Key | Value | 備考 |
Authorization | ヘッダ認証情報 | ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。 |
Content-Type | application/json |
Request Body
パラメータ名 | 必須 | 説明 | 備考 |
beginTime | ◯ | 検索条件:オファリングタイム開始時間 | 最大7日間指定可能 |
endTime | ◯ | 検索条件:オファリングタイム終了時間 | 最大7日間指定可能 |
callNo | 検索条件:発信側電話番号 | ||
calledNo | 検索条件:受信側電話番号 | ||
connectType |
検索条件:通話タイプ |
||
status | 検索条件:通話応答ステータス ・dealing:応答済み ・notDeal:不在 ・leak:アナウンス ・queueLeak:放棄呼 ・blackList:ブラックリスト ・voicemail:留守番 ・limit:同時制限 |
||
page | ページ目(データ件数が多いの時にページング処理で使用可能) | ||
pageSize | ページごとの取得件数(データ件数が多いの時にページング処理で使用可能) |
Payloadサンプル
{ "beginTime": "2023-04-03 00:00:00", "endTime": "2023-04-07 23:59:59", "exten": "8001", "status": "dealing" } |
レスポンスデータ
データが正常に返された場合:
{ "success":true, "data": [ {}, {}, {} ], "count":150 } |
dataプロパティは通話履歴データの配列になります。
通話履歴データの
項目定義
項目名 |
説明 | 備考 |
CALL_SHEET_ID | 通話履歴一意キー | |
CALL_NO | 発信側電話番号 | |
CALLED_NO | 受信側電話番号 | |
STATUS | 通話応答ステータス | dealing:応答済み notDeal:不在 leak:アナウンス queueLeak:放棄呼 blackList:ブラックリスト voicemail:留守番 limit:同時制限 |
BEGIN_TIME | 通話開始時間 | 未応答通話の場合は空 |
END_TIME | 通話終了時間 | |
OFFERING_TIME | オファリングタイム | |
CONNECT_TYPE | 通話タイプ | dialout:アウトバウンド normal:インバウンド transfer:インバウンド転送 dialTransfer:アウトバウンド転送 |
EXTEN | 座席番号 | |
AGENT_NAME | 座席氏名 | |
FILE_SERVER | 録音ファイルの保存先サーバー | 録音ファイルURL: {FILE_SERVER}/{RECORD_FILE_NAME} |
RECORD_FILE_NAME | 録音ファイル名 | 録音ファイルURL: {FILE_SERVER}/{RECORD_FILE_NAME} |
REF_CALL_SHEET_ID | 転送電話の場合、転送前通話の通話履歴の一意キー | 転送通話(アウトバウンド転送、インバウンド転送)の場合のみ設定される |
CALL_TIME_LENGTH | 通話時間(秒単位) | 未応答通話の場合は0 |
QUEUE_NAME | インバウンド通話のみ 着信スキルグループ名 |
|
QUEUE_TIME | インバウンド通話のみ スキルグループへの着信時間(秒まで) |
|
LABELS | 通話タグ(配列) | |
COMMENTS | 備考 | |
CUSTOMER_NAME | 顧客名 |
URL
https://api.simpleconnect.jp/v20220801/account/getCCServiceNoByAcc/{会社アカウントID}?sig={電子署名} |
※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。
Request Method
POST
Request Header
Key | Value | 備考 |
Authorization | ヘッダ認証情報 | ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。 |
Content-Type | application/json |
Request Body
なし
Response
データが正常に返された場合:
{ "success": true, "data": [ { "_id": "f64dcad0-5f27-11ed-88cc-ad9e7a305317", "Exten": "05050509991", "DisplayName": "Phone Number A" }, { "_id": "f9c8c0c0-5f27-11ed-b0d7-4919babf5290", "Exten": "05050509992", "DisplayName": "Phone Number B" }, { "_id": "297fd150-79fe-11ed-a157-f9f4d11beac4", "Exten": "05050509993", "DisplayName": "Number for SMS" } ] } |
URL
https://api.simpleconnect.jp/v20220801/sms/getSmsTemplate/{会社アカウントID}?sig={電子署名} |
※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。
Request Method
POST
Request Header
Key | Value | 備考 |
Authorization | ヘッダ認証情報 | ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。 |
Content-Type | application/json |
Request Body
なし
Response
"_id":テンプレート一意キー
"num":テンプレート識別番号
"name":テンプレート表示名
"content": テンプレート内容
"vars": テンプレート変数の数
"sign": "テンプレート署名
データが正常に返された場合:
{ "success": true, "data": [ { "_id": " N00000000556_1", "num": "1", "name": "SMSテンプレート1", "content": "この度はご連絡頂き有難うございます。次回のご予約は{1}月{2}日{3}時{4}分からとなっております。詳細は下記URL{5}よりご確認ください。", "vars": 5, "sign": "【署名】" }, { "_id": " N00000000556_2", "num": "2", "name": "SMSテンプレート2", "content": "※本メールは配信専用になります※本メールは弊社からの商品が未受け取りのお客様に送信をしております。", "vars": 0, "sign": "【署名】" } ] } |
Succeed = trueの場合、API実行が成功にしたことを示す。
URL
https://api.simpleconnect.jp/v20220801/sms/sendInterfaceTemplateSms/{会社アカウントID}?sig={電子署名} |
※会社アカウントID、電子署名の作成方法は「共通_認証関連」をご参照ください。
Request Method
POST
Request Header
Key | Value | 備考 |
Authorization | ヘッダ認証情報 | ※ヘッダ認証情報の作成方法は「共通_認証関連」をご参照ください。 |
Content-Type | application/json |
Request Body
パラメータ名 | 必須 | 説明 | 備考 |
num | ◯ | 送信先電話番号(複数の番号をカンマで区切り) | 09012345678,09012345678,09012345677,09012345676 |
templateNum | ◯ | SMSテンプレート識別番号 (SMSテンプレート照会APIより取得できる) | |
var1 var2 … varn |
◯ | 変数値(該当するSMSテンプレートに変数が設定された場合、その変数の値) | 例:テンプレート内容が「これは{1}ですが、それは{2}です、あれは{3}です」になっている場合、{1}の内容はvar1で設定し、{2}の内容はvar2で設定し…{n}の内容はvarnで設定する形になります。 |
Payloadサンプル
{ "num": "09012345678,09012345677,09012345676", "templateNum": "1", "var1": "3", "var2": "22", "var3": "11", "var4": "30", "var5": "https://www.example.com" } |
テンプレート内容:
この度はご連絡頂き有難うございます。次回のご予約は{1}月{2}日{3}時{4}分からとなっております。
詳細は下記URL{5}よりご確認ください。
Response
データが正常に返された場合:
{ "success": true, "msgid": "045de080-13df-11ee-9e19-adc8787851f8", "message": "sms sent successfully." } |
Succeed = trueの場合、API実行が成功にしたことを示す。