References

Use the library

Include this javascript bundle in the html
<script src="https://static.iadvize.com/conversation-panel-app-lib/2.9.0/idzcpa.umd.production.min.js"></script>

Client

idzCpa

Global cariable used as the entry point of the CPA library, stored in window

init() : Promise

Client is obtained using idzCpa.init that returns a Promise
window.idzCpa.init().then(client => {
//some code
})

context

Returns the client's information in the form of a Context object
type Context = {
conversationId: string;
projectId: string;
channel: Channel;
language: string;
}
conversationId : id of the conversation between the client and the operator
projectId : Id of the project you launch the desk on
channel : Type of channel :
AppleBusinessChat = 'APPLE_BUSINESS_CHAT',
Call = 'CALL',
Chat = 'CHAT',
Facebook = 'FACEBOOK',
FacebookBusinessOnMessenger = 'FACEBOOK_BUSINESS_ON_MESSENGER',
GoogleBusinessMessages = 'GOOGLE_BUSINESS_MESSAGES',
Instagram = 'INSTAGRAM',
MobileApp = 'MOBILE_APP',
Sms = 'SMS',
Twitter = 'TWITTER',
Video = 'VIDEO',
Whatsapp = 'WHATSAPP',
language : language of the client

insertTextInComposeBox(string)

Insert the text passed in parameters into the compose box

pushCardInConversationThreat(Card)

Push the card passed in parameters into the conversation thread
type Action = {
type: "LINK";
title: string;
url: string;
};
type Card = {
title?: string;
text?: string;
actions: Action[];
image?: {
url: string;
description: string;
}
};
Push the card bundle passed in parameters in the conversation thread
type Carousel = {
title?:string;
cards: Card[]
}

getJWT() : string

Returns the JWT of the desk

ApplePay

pushApplePayPaymentRequestInConversationThread(ApplePayPaymentRequestType) : Promise

Insert an ApplePay payment request in the conversation, returns a promise. If the payment is successful => execute promise.then(()=>{ }) If there is an error in the payment => execute promise.catch((e : ActionError)=>{ })
type ApplePayPaymentRequestType = {
requestIdentifier: UUID;
payment: ApplePayPaymentRequest;
receivedMessage: ApplePayReceivedMessage;
}
// Detail for payment field type
type ApplePayPaymentRequest {
currencyCode: string;
lineItems: PaymentItem[];
requiredBillingContactFields: ApplePayContactField[];
requiredShippingContactFields: ApplePayContactField[];
shippingMethods: ShippingMethod[];
total: PaymentItem;
}
type PaymentItem = {
amount: string;
label: string;
type: ApplePayLineItemType;
};
enum ApplePayLineItemType {
final,
pending,
}
type ShippingMethod = {
amount: string;
detail: string;
identifier: string;
label: string;
};
enum ApplePayContactField {
email = 'email',
name = 'name',
phone = 'phone',
postalAddress = 'postalAddress',
phoneticName = 'phoneticName',
}
// type for receivedMessage field
type ApplePayReceivedMessage {
type: 'CARD';
data: CardType;
}
type CardType = {
title?: string;
text?: string;
image?: CardImage;
actions: LinkAction[];
};
type CardImage = {
url: string;
description: string;
};
type LinkAction = {
type: 'LINK';
title: string;
url: string;
};
// Error
type ActionError = {
message: string;
details?: string[];
}
client.pushApplePayPaymentRequestInConversationThread(applePayPaymentRequest: ApplePayPaymentRequestType): Promise