Logo Site EngageLab Mark Colored Transparent文件
搜尋

如何透過 API 通道發送訊息

由於 API Channel 不支援隱式建立聯絡人,LiveDesk 使用 API Channel 發送訊息可分為以下三步:

  1. 建立聯絡人
  2. 根據聯絡人資訊建立會話
  3. 發送訊息

建立聯絡人

呼叫位址

https://livedesk-api.engagelab.com/api/v2/accounts/contacts

請求範例

curl -X POST https://livedesk-api.engagelab.com/api/v2/accounts/contacts \ -H 'Content-Type: application/json' \ -H 'Authorization: Basic base64(api_key:api_secret)' \ { "inbox_id": 407, "name": "Test", // 選填 "email": "alice@acme.inc", "phone_number": "+123456789", "avatar_url": "https://example.com/avatar.png", "identifier": "1234567890", }
              
              curl -X POST https://livedesk-api.engagelab.com/api/v2/accounts/contacts \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(api_key:api_secret)' \
{
    "inbox_id": 407,
    "name": "Test",                   // 選填
    "email": "alice@acme.inc",
    "phone_number": "+123456789", 
    "avatar_url": "https://example.com/avatar.png",
    "identifier": "1234567890",
}

            
此代碼塊在浮窗中顯示

請求標頭

字段 類型 描述
Authorization string 使用 Authorization: Basic base64(API Key:API Secret) 進行身分驗證。請前往 API 金鑰頁面取得 API Key 和 API Secret,並將兩者以冒號連接後進行 Base64 編碼。
Content-Type application/json 資料類型,一般文字訊息使用 application/json

請求體參數

字段 類型 必填 描述
inbox_id String Channel ID,對應「專案設定-Channels-特定 Channel-設定」中的 Channel ID。
name String 聯絡人名稱。
email String 電子郵件地址。
phone_number String 聯絡方式。
avatar_url String 頭像連結。
identifier String 使用者識別。

回應範例

{ "payload": { "contact": { "additional_attributes": {}, "availability_status": "offline", "email": null, "id": 2219259, "name": "Test", "phone_number": null, "blocked": false, "identifier": null, "thumbnail": "", "custom_attributes": {}, "created_at": 1766571703, "contact_inboxes": [] }, "contact_inbox": { "inbox": null, "source_id": null } } }
              
              {
    "payload": {
        "contact": {
            "additional_attributes": {},
            "availability_status": "offline",
            "email": null,
            "id": 2219259,
            "name": "Test",
            "phone_number": null,
            "blocked": false,
            "identifier": null,
            "thumbnail": "",
            "custom_attributes": {},
            "created_at": 1766571703,
            "contact_inboxes": []
        },
        "contact_inbox": {
            "inbox": null,
            "source_id": null
        }
    }
}

            
此代碼塊在浮窗中顯示

回應參數

字段 類型 必填 描述
additional_attributes Object 額外屬性。
availability_status String 線上狀態,預設為 offline
email String 電子郵件地址。
id String 聯絡人 ID。
name String 名稱。
phone_number String 手機號碼。
blocked String 是否封鎖,預設為 false
identifier String 使用者識別。
thumbnail String 縮圖。
custom_attributes String 自訂屬性。
created_at String 建立時間戳。
contact_inboxes Array 聯絡人收件匣資訊。
inbox String Channel 通道。
source_id String 來源 ID。

建立會話

呼叫位址

https://livedesk-api.engagelab.com/api/v2/accounts/conversations

請求範例

curl -X POST https://livedesk-api.engagelab.com/api/v2/accounts/conversations \ -H 'Content-Type: application/json' \ -H 'Authorization: Basic base64(api_key:api_secret)' \ { "inbox_id": 407, // 必傳 "contact_id": 2219256, // contact_id、source_id 可選其一傳入,但必須確保能正確識別發送者 "source_id": "123456789" }
              
              curl -X POST https://livedesk-api.engagelab.com/api/v2/accounts/conversations \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(api_key:api_secret)' \
{
  "inbox_id": 407,              // 必傳
  "contact_id": 2219256,        // contact_id、source_id 可選其一傳入,但必須確保能正確識別發送者
  "source_id": "123456789"
}

            
此代碼塊在浮窗中顯示

請求標頭參數

字段 類型 描述
Authorization string 使用 Authorization: Basic base64(API Key:API Secret) 進行身分驗證。請前往 API 金鑰頁面取得 API Key 和 API Secret,並將兩者以冒號連接後進行 Base64 編碼。
Content-Type application/json 資料類型,一般文字訊息使用 application/json

請求體參數

字段 類型 必填 描述
inbox_id String Channel ID,需與建立聯絡人介面使用的 ID 一致。
contact_id String 聯絡人 ID,為建立聯絡人介面回應中的 id
source_id String 來源 ID。

回應範例

{ "meta": { "sender": { "additional_attributes": {}, "availability_status": "offline", "email": null, "id": 2219256, "name": "wjTest", "phone_number": null, "blocked": false, "identifier": null, "thumbnail": "", "custom_attributes": {}, "created_at": 1766571624 }, "channel": "Channel::Api", "hmac_verified": false }, "id": 40, "messages": [], "account_id": 17623000010928, "uuid": "660ce36f-46bb-4153-948c-8a26e6dab634", "inbox_id": 407, "additional_attributes": {}, "agent_last_seen_at": 0, "assignee_last_seen_at": 0, "can_reply": true, "contact_last_seen_at": 0, "custom_attributes": {}, "labels": [], "muted": false, "snoozed_until": null, "status": "open", "priority": null, "conversation_category": "chat", "chat_mode": "private_chat", "is_forum": false, "created_at": 1766572062, "updated_at": 1766572062.5803902, "timestamp": 1766572062, "first_reply_created_at": 0, "unread_count": 0, "last_non_activity_message": null, "last_activity_at": 1766572062, "waiting_since": 1766572062, "sla_policy_id": null, "ticket_id": null, "over_limit": false, "content_preview": { "content": null, "message_type": null, "created_at": null }, "platform": { "channel_type": "Channel::Api", "inbox_name": "JennyApi", "inbox_id": 407 }, "account_info": { "contact_name": "wjTest", "contact_email": null, "contact_phone": null, "contact_id": 2219256, "contact_avatar": "" }, "assignment": { "assignee_id": null, "assignee_name": null, "assignee_email": null, "team_id": null, "team_name": null } }
              
              {
    "meta": {
        "sender": {
            "additional_attributes": {},
            "availability_status": "offline",
            "email": null,
            "id": 2219256,
            "name": "wjTest",
            "phone_number": null,
            "blocked": false,
            "identifier": null,
            "thumbnail": "",
            "custom_attributes": {},
            "created_at": 1766571624
        },
        "channel": "Channel::Api",
        "hmac_verified": false
    },
    "id": 40,
    "messages": [],
    "account_id": 17623000010928,
    "uuid": "660ce36f-46bb-4153-948c-8a26e6dab634",
    "inbox_id": 407,
    "additional_attributes": {},
    "agent_last_seen_at": 0,
    "assignee_last_seen_at": 0,
    "can_reply": true,
    "contact_last_seen_at": 0,
    "custom_attributes": {},
    "labels": [],
    "muted": false,
    "snoozed_until": null,
    "status": "open",
    "priority": null,
    "conversation_category": "chat",
    "chat_mode": "private_chat",
    "is_forum": false,
    "created_at": 1766572062,
    "updated_at": 1766572062.5803902,
    "timestamp": 1766572062,
    "first_reply_created_at": 0,
    "unread_count": 0,
    "last_non_activity_message": null,
    "last_activity_at": 1766572062,
    "waiting_since": 1766572062,
    "sla_policy_id": null,
    "ticket_id": null,
    "over_limit": false,
    "content_preview": {
        "content": null,
        "message_type": null,
        "created_at": null
    },
    "platform": {
        "channel_type": "Channel::Api",
        "inbox_name": "JennyApi",
        "inbox_id": 407
    },
    "account_info": {
        "contact_name": "wjTest",
        "contact_email": null,
        "contact_phone": null,
        "contact_id": 2219256,
        "contact_avatar": ""
    },
    "assignment": {
        "assignee_id": null,
        "assignee_name": null,
        "assignee_email": null,
        "team_id": null,
        "team_name": null
    }
}

            
此代碼塊在浮窗中顯示

回應參數

字段 類型 必填 描述
meta Object 中繼資料物件。
sender Object 發送者資訊。
additional_attributes Object 額外屬性。
availability_status String 可用性狀態。
email Null 電子郵件。
id Number 聯絡人 ID。
name String 發送者名稱。
phone_number Null 電話號碼。
blocked Boolean 是否被封鎖。
identifier Null 使用者屬性識別。
thumbnail String 縮圖。
custom_attributes Object 自訂屬性。
created_at Number 會話建立時間戳。
channel String 渠道類型。
hmac_verified Boolean HMAC 驗證狀態。
id Number 會話 ID。
messages Array 訊息陣列。
account_id Number 專案 ID。
uuid String 唯一識別碼。
inbox_id Number 通道 ID。
additional_attributes Object 額外屬性。
agent_last_seen_at Number 代理最後處理時間。
assignee_last_seen_at Number 被指派者最後處理時間。
can_reply Boolean 是否可以回覆。
contact_last_seen_at Number 聯絡人最後 seen 時間。
custom_attributes Object 自訂屬性。
labels Array 標籤陣列。
muted Boolean 是否靜音。
snoozed_until Null 暫停至何時。
status String 狀態。
priority Null 優先順序。
conversation_category String 對話類別。
chat_mode String 聊天模式。
is_forum Boolean 是否為論壇。
created_at Number 建立時間戳。
updated_at Number 更新時間戳。
timestamp Number 時間戳。
first_reply_created_at Number 首次回覆建立時間。
unread_count Number 未讀數量。
last_non_activity_message Null 最後一則非活動訊息。
last_activity_at Number 最後活動時間。
waiting_since Number 開始等待時間。
sla_policy_id Null SLA 策略 ID。
ticket_id Null 工單 ID。
over_limit Boolean 是否超出限制。
content_preview Object 內容預覽。
content_preview.content Null 預覽內容。
content_preview.message_type Null 訊息類型。
content_preview.created_at Null 建立時間。
platform Object 平台資訊。
channel_type String 渠道類型。
inbox_name String 收件匣名稱。
inbox_id Number 收件匣 ID。
account_info Object 帳戶資訊。
contact_name String 聯絡人名稱。
contact_email Null 聯絡人電子郵件。
contact_phone Null 聯絡人電話。
contact_id Number 聯絡人 ID。
contact_avatar String 聯絡人頭像。
assignment Object 指派資訊。
assignee_id Null 受理人 ID。
assignee_name Null 受理人名稱。
assignee_email Null 受理人電子郵件。
team_id Null 團隊 ID。
team_name Null 團隊名稱。

發送訊息

呼叫位址

https://livedesk-api.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages

請求範例

curl -X POST 'https://livedesk-api.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages' \ -H 'Content-Type: application/json' \ -H 'Authorization: Basic base64(api_key:api_secret)' \ -d '{ "content": "客服發送訊息,正常嗎", "private": false, "message_type": "incoming", "content_attributes": { "in_reply_to": 29 } }'
              
              curl -X POST 'https://livedesk-api.engagelab.com/api/v2/accounts/conversations/:conversation_id/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(api_key:api_secret)' \
-d '{
    "content": "客服發送訊息,正常嗎",
    "private": false,
    "message_type": "incoming",
    "content_attributes": {
        "in_reply_to": 29
    }
}'

            
此代碼塊在浮窗中顯示

請求標頭

字段 類型 描述
Authorization string 使用 Authorization: Basic base64(API Key:API Secret) 進行身分驗證。請前往 API 金鑰頁面取得 API Key 和 API Secret,並將兩者以冒號連接後進行 Base64 編碼。
Content-Type application/json 資料類型,一般文字訊息使用 application/json

請求體參數

字段 類型 必填 描述
content String 訊息內容。
private String 是否為私人訊息。
message_type String 訊息類型,可為 outgoingincoming,分別表示客服發送與使用者發送;未傳時預設為 outgoing
content_attributes String 內容屬性。
in_reply_to String 回覆的訊息 ID。
Icon Solid Transparent White Qiyu
聯繫銷售