repositories { jcenter() google() maven { url 'http://maven.zohodl.com/' } maven { url 'https://downloads.zohocdn.com/wmslibrary' } }
dependencies { implementation 'com.zoho.desk:asapsdk:3.0-BETA_0_1' }
import android.app.Application;
import com.zoho.desk.asap.api.ZohoDeskPortalSDK;
public class MyApplication extends Application {
public static ZohoDeskPortalSDK apiProvider;
@Override
public void onCreate() {
super.onCreate();
ZohoDeskPortalSDK.Logger.enableLogs();
apiProvider = ZohoDeskPortalSDK.getInstance(getApplicationContext());
apiProvider.initDesk(orgId, appId, datacenterValue);
}
}
ZDPortalHome.show(MainActivity.this);
ZDPHomeConfiguration config = new ZDPHomeConfiguration.Builder()
.isKBEnabled(true)
.isCommunityEnabled(true)
.isLiveChatEnabled(true)
.isMyTicketsEnabled(true).build();
ZDPortalHome.setConfiguration(config);
ZDPortalHome.show(activity);
ZDPortalChat.show(activity);
ZDPortalChatUser chatUser = new ZDPortalChatUser();
chatUser.setName(name);
chatUser.setEmail(email);
chatUser.setPhone(phone);
ZDPortalChat.setGuestUserDetails(chatUser);
ZDPortalKB.show(activity);
ZDPortalSubmitTicket.show(activity);
ZDPortalSubmitTicket.show(activity, new ZDPortalCallback.CreateTicketCallback() {
@Override
public void onTicketCreated(Ticket ticket) {
//Ticket created
}
@Override
public void onException(ZDPortalException e) {
//Exception
}
} : null);
ZDPortalTickets.show(activity);
ZDPortalCommunity.show(activity);
ZDPortalLiveChat.show(<activity>);
ZDPortalLiveChat.getChatFragment()
if(!MyApplication.deskInstance.isUserSignedIn()) {
MyApplication.deskInstance.setUserToken(userToken, new ZDPortalCallback.SetUserCallback() {
@Override
public voidonUserSetSuccess() {
//User set success
}
@Override
public voidonException(ZDPortalException e) {
//Exception
}
});
}
boolean isUserLoggedIn = MyApplication.deskInstance.isUserSignedIn();
利用者(ユーザー)をログアウトさせるには、以下のメソッドを使用します。
MyApplication.deskPortalSDK.logout (new ZDPortalCallback.LogoutCallback() { @Override public void onLogoutSuccess() { //User logged out } @Override public void onException(ZDPortalException e) { } });
ローカルデータのクリア
認証ユーザーがどこでもサポートのアドオンからログアウトすると、デバイスに保存されているすべてのデータ(ローカルデータ)は自動的にクリアされます。
ゲストユーザー(匿名ユーザー)のローカルデータもクリアする必要がある場合は、以下のメソッドを使用します。
MyApplication.deskInstance.clearDeskPortalData();
操作画面のカスタマイズ
どこでもサポートの操作画面は、必要に応じてカスタマイズできます。
標準のテーマ
操作画面の標準テーマとしては、ライトとダークの2種類が用意されています。
テーマのカスタマイズ
(i) テーマの種類のカスタマイズ:
どこでもサポートの操作画面のテーマをカスタマイズするには、以下のコードを使用します。
ZDPortalConfiguration.setThemeType(ZDPThemeType.SYSTEM);
[ZDPThemeType.SYSTEM]:操作画面のテーマは、使用中のOSのテーマと連動します。ライトモード/ダークモードに変更したい場合は、以下のメソッドを使用します。
[ZDPThemeType.Light]: 使用中のOSのテーマに関わらず、ライトテーマを適用します。
[ZDPThemeType.Dark]: 使用中のOSのテーマに関わらず、ダークテーマを適用します。
(ii) [特定のテーマにおける色のカスタマイズ]:
特定のテーマで、操作画面の背景や要素の色をカスタマイズしたい場合、以下のメソッドを使用します。
ZDPTheme theme = new ZDPTheme.Builder(true)
.setColorPrimary(Color.parseColor("#"))
.setColorAccent(Color.parseColor("#"))
.build();
ZDPortalConfiguration.setThemeBuilder(theme);
カスタマイズ可能な要素の属性名は以下のとおりです。
ZDPortalConfiguration.setLanguage("en");
言語 | ロケールコード |
英語(イギリス) | en-GB |
英語(アメリカ) | en-US |
ドイツ語 | de |
スペイン語 | es |
カタロニア語 | ca |
フランス語 | fr |
フランス語(カナダ) | fr-ca |
イタリア語 | it |
ロシア語 | ru |
中国語 | zh |
中国語(台湾) | zh-tw |
トルコ語 | tr |
オランダ語 | nl |
デンマーク語 | da |
ポルトガル語 | pt |
日本語 | ja |
スウェーデン語 | sv |
ポーランド語 | pl |
アラビア語 | ar |
ヘブライ語 | he |
アフリカーンス語 | af |
チェコ語 | cs |
ブルガリア語 | bg |
フィンランド語 | fi |
ギリシャ語 | el |
ハンガリー語 | hu |
インドネシア語 | id |
ノルウェー語(ブークモール) | nb |
ルーマニア語 | ro |
タイ語 | th |
ウクライナ語 | uk |
ベトナム語 | vi |
ウルドゥー語 | ur |
ヒンディー語 | hi |
テルグ語 | te |
カンナダ語 | kn |
タミル語 | ta |
マラーティー語 | mr |
韓国語 | ko |
ペルシャ語 | fa |
ベンガル語 | bn |
グジャラート語 | gu |
マレー語 | ms |
マラヤーラム語 | ml |
スロバキア語 | sk |
クロアチア語 | hr |
スロベニア語 | sl |
android {
defaultConfig {
...
resConfigs "ja", "en", "ta"
}
}
キー | 初期設定のテキスト | 説明 |
DeskPortal.Dashboard.Heading | 「Customer Support」 | ダッシュボードに表示されるテキストです |
DeskPortal.Dashboard.helpcenter.title | 「Knowledge Base」 | ダッシュボード上に表示されるナレッジベース機能のアイコンのタイトルです |
DeskPortal.Dashboard.helpcenter.description | 「Browse our extensive repository of help articles」 | ナレッジベース機能の説明文です |
DeskPortal.Dashboard.community.title | 「Community」 | ダッシュボード上に表示されるコミュニティ機能のアイコンのタイトルです |
DeskPortal.Dashboard.community.description | 「Find and share solutions with the user community」 | コミュニティ機能の説明文です |
DeskPortal.Dashboard.addticket.title | 「Submit Ticket」 | ダッシュボード上に表示される問い合わせの送信機能のアイコンのタイトルです |
DeskPortal.Dashboard.addticket.description | 「Seek help from our agents」 | 問い合わせの送信機能の説明文です |
DeskPortal.Dashboard.myticket.title | 「My Tickets」 | ダッシュボード上に表示される、自分の問い合わせ機能のアイコンのタイトルです |
DeskPortal.Dashboard.myticket.description | 「View and manage tickets that you submitted」 | 自分の問い合わせ機能の説明文です |
DeskPortal.Helpcenter.article.detail.relatedtitle | 「Related Articles」 | ナレッジベース内のヘルプ記事の下部に表示されるテキストです |
DeskPortal.Helpcenter.article.detail.vote.description | 「Was this article helpful?」 | 利用者にフィードバックを促すテキストです |
DeskPortal.Helpcenter.feedback.title | 「Feedback」 | フィードバックフォームのタイトルです |
DeskPortal.Helpcenter.feedback.description | 「We're sorry the article wasn't helpful.」 | 利用者が記事に対して低い評価を行った際に表示されるテキストです |
DeskPortal.Myticket.option.closeticket | 「Close Ticket」 | 利用者が問い合わせを自分自身で完了するためのボタンに表示されるテキストです |
DeskPortal.Error.message.reload | 「Retry」 | 問い合わせを送信できなかった際に表示されるエラーメッセージです |
DeskPortal.Network.failed.error.message | 「No Internet connection」 | 接続が切断された際に表示されるエラーメッセージです |
DeskPortal.Dashboard.livechat.title | 「Live Chat」 | ダッシュボード上に表示されるチャット機能のタイトルです |
DeskPortal.Addticket.title | 「Add Ticket」 | 問い合わせの送信フォームのタイトルです |
MyApplication.deskInstance.enablePush("fcmId");
MyApplication.deskInstance.disablePush("fcmId");
ZDPortalConfiguration.handleNotification(Context context, Map data, int icon);
ZDPortalTicketsAPI.createTicket(new CreateTicketCallback() {
@Override
public void onTicketCreated(Ticket ticket) {
}
@Override
public void onException(ZDPortalException exception) {
}
}, ticketData, params);
ZDPortalAPI.getDepartments(new ZDPortalCallback.DepartmensCallback() {
@Override
public void onDepartmentsDownloaded(DepartmentsList response) {
}
@Override
public void onException(ZDPortalException exception) {
}
});
レイアウトのIDを取得するには、以下のメソッドを使用します。
HashMap<String, String> params = new HashMap<>();
params.put("departmentId", departmentId);
ZDPortalAPI.getLayouts(new ZDPortalCallback.LayoutsCallback() {
@Override
public void onLayoutsDownloaded(Layouts layouts) {
//layout fetch succeed
}
@Override
public void onException(ZDPortalException e) {
//layot fetch failed
}
}, params);
HashMap<String, String> options = new HashMap<>();
options.put("from", String.valueOf(1));
options.put("limit", String.valueOf(100));
options.put("departmentId", departmentId);
ZDPortalAPI.getProductsList(new ZDPortalCallback.ProductsCallback() {
@Override
public void onProductsDownloaded(ProductsList productsList) {
productsMap.put(departmentId, productsList.getData());
responseLiveData.setValue(productsList.getData());
}
@Override
public void onException(ZDPortalException exception) {
}
}, options);
ZDPortalTicketsAPI.getTicketFields(new TicketFieldsCallback() {
@Override
public void onTicketFieldsDownloaded(TicketFieldsList ticketFieldsList) {
}
@Override
public void onException(ZDPortalException exception) {
}
}, fieldsParams, "apiName");
ZDPortalTicketsAPI.uploadAttachment(new UploadAttachmentCallback() {
@Override
public void onAttachmentUploaded(ASAPAttachmentUploadResponse response) {
}
@Override
public void onException(ZDPortalException exception) {
}
}, fileTobeUploaded, null);
ZDPortalKB.showCategoryWithPermalink(activity, permaLink);
ZDPortalKB.showArticleWithPermalink(activity, permaLink);
ZDPCommunityConfiguration configuration = new ZDPCommunityConfiguration.Builder()
.isReplyAllowed(true)
.isReplyEditAllowed(true)
.isReplyDeleteAllowed(true)
.isTopicEditAllowed(true)
.isTopicDeleteAllowed(true).build();
ZDPortalCommunity.setConfiguration(configuration);
HashMap<String, String> params = new HashMap<>();
params.put("from", "1");
params.put("limit", "5");
ZDPortalCommunityAPI.getMostPopularTopics(new ZDPortalCallback.CommunityTopicsCallback() {
@Override
public void onCommunityTopicsDownloaded(DeskTopicsList deskTopicsList) {
}
@Override
public void onException(ZDPortalException e) {
}
}, params);
HashMap<String, String> params = new HashMap<>(); params.put("from", "1"); params.put("limit", "5"); ZDPortalCommunityAPI.getMostDiscussedTopics(new ZDPortalCallback.CommunityTopicsCallback() { @Override public void onCommunityTopicsDownloaded(DeskTopicsList deskTopicsList) { } @Override public void onException(ZDPortalException e) { } }, params);
ZDPortalSubmitTicket.setTicketsFieldsListTobeShown(ticketListTobeShown, deptId, layoutId);
ZDPortalSubmitTicket.preFillTicketFields(preFillTicketFields, deptId, layoutId);
ZDPTicketConfiguration configuration = new ZDPTicketConfiguration.Builder()
.isReplyAllowed(true)
.isCommentAllowed(true)
.isCommentEditAllowed(true)
.isTicketUpdateAllowed(true)
.build();
ZDPortalTickets.setConfiguration(configuration);
HashMap<String, String> params = new HashMap<>();
params.put("timeZone", "asia/kolkatta");
ZDPortalAPI.updateProfileDetails(new ZDPortalCallback.UserDetailsCallback() {
@Override
public void onUserDetailsSuccess(DeskUserProfile userProfile) {
}
@Override
public void onException(ZDPortalException exception) {
}
}, params);
パラメーター
ZohoDeskPortalSDK.Logger.enableLogs();
バージョン2.xから3.0への移行
操作画面のカスタマイズ
ZDPortalConfiguration.setThemeResource(themeId); | ZDPortalConfiguration.setThemeType(ZDPThemeType.LIGHT); ZDPortalConfiguration.setThemeBuilder(new ZDPTheme.Builder(false) .setColorPrimary(getResources().getColor(R.color.colorPrimary)) .setColorPrimaryDark(getResources().getColor(R.color.colorPrimaryDark)) .build()); |
コミュニティで許可する操作の設定
ZDPCommunityConfiguration communityConfiguration = new ZDPCommunityConfiguration(); communityConfiguration.setTopicEditAllowed(false);
ZDPortalCommunity.setConfiguration(communityConfiguration); | ZDPCommunityConfiguration communityConfiguration = new ZDPCommunityConfiguration.Builder().isTopicEditAllowed(false).build(); ZDPortalCommunity.setConfiguration(communityConfiguration); |
問い合わせに関して許可する操作の設定
ZDPTicketConfiguration ticketConfiguration = new ZDPTicketConfiguration(); ticketConfiguration.setReplyAllowed(false);
ZDPortalTickets.setConfiguration(ticketConfiguration); | ZDPTicketConfiguration ticketConfiguration = new ZDPTicketConfiguration.Builder().isReplyAllowed(false).build();
ZDPortalTickets.setConfiguration(ticketConfiguration); |
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。