iOS向けどこでもサポートSDKの[問い合わせ]タブのカスタマイズ

iOS向けどこでもサポートSDKの[問い合わせ]タブのカスタマイズ

このページでは、どこでもサポートのウィジェットの[問い合わせ]タブに関する各種設定方法について説明します。

問い合わせの送信画面の項目の非表示

どこでもサポートの問い合わせの送信画面には、Zoho Deskの問い合わせのレイアウトと同じ項目が表示されます。

必要に応じて、問い合わせの送信画面内の任意の項目を非表示に設定することができます。非表示に設定するには、以下のように「setFieldsListTobeShown()」メソッドを使用します。

Swift

  1. ZDPortalSubmitTicket.setFieldsListTobeShown
    (fields: <#[ZDVisibleTicketField]#>)

Objective-C

  1. [ZDPortalSubmitTicket setFieldsListTobeShownWithFields:
    <#(NSArray * _Nonnull)#>];
上記のコード内の「ZDVisibleTicketField」は、「departmentId」(文字列)と「layoutId」の2種類の属性と、項目名の配列が含まれるクラスです。このメソッドでは、項目のリスト(apiNames)を文字列で指定する必要があります。また、どこでもサポートに関連付けられている部門に応じて、「departmentId」キーを指定する必要があります。たとえば、ある特定の部門においてのみどこでもサポートが設定されている場合、「departmentId」キーを指定する必要はありません。複数の部門でどこでもサポートが設定されている場合、「departmentId」キーを指定して、問い合わせの項目と部門を関連付ける必要があります。このメソッドを追加すると、ウィジェットの問い合わせの送信画面には、メソッドで指定した項目のみが表示されます。ただし、必須項目に関しては、メソッド内で値を指定しない場合にも表示されますのでご注意ください。

問い合わせの送信画面での必須項目の非表示 

問い合わせの送信画面内の必須項目を非表示に設定する場合、非表示にする必須項目に値を事前に入力する必要があります。事前入力にするには、「preFillTicketFields()」メソッドを使用します。「preFillTicketFields()」メソッドは、自動で作成されたIDやデバイスのOSのバージョンといった値を項目に事前入力したい場合に役立ちます。

このメソッドを使用するには、「PreFillTicketField」オブジェクトのリストを指定する必要があります。また、どこでもサポートに関連付けられている部門に応じて、「departmentId」キーを指定する必要があります。

Swift

  1. ZDPortalSubmitTicket.preFillTicketFields(forForms: <#[ZDCustomizedTicketForm]#>)

Objective-C

  1. [ZDPortalSubmitTicket preFillTicketFieldsForForms:<#[ZDCustomizedTicketForm]#>];
上記の「ZDCustomizedTicketForm」は、「departmentId」(文字列)とカスタマイズした問い合わせ項目の2種類のプロパティが含まれるクラスです。「setTicketsFieldsListTobeShown()」メソッドの場合と同様に、どこでもサポートの設定である特定の部門のみが関連付けられている場合は、「departmentId」キーを指定する必要はありません。複数の部門でどこでもサポートが設定されている場合、「departmentId」キーを指定して、部門と項目を関連付ける必要があります。

ZDCustomizedTicketField」オブジェクトに含まれる主なプロパティは、以下のとおりです。

1. deptId:問い合わせ送信フォームに関連付ける部門のIDです。
2. layoutId:問い合わせ送信フォームに関連付けるレイアウトのIDです。
3. fieldApiName(文字列):問い合わせの項目の「apiName」です。それぞれの項目の「apiName」を取得するには、「getTicketForm()」メソッドを使用します。
4. field value:項目の種類に応じて、値を指定します。
  1. 複数選択項目の場合、選択肢の値(文字列)をコンマ(,)で区切って指定します。
  2. 選択リスト項目の場合、選択肢に含まれるいずれかの値(文字列)を指定します。
    日付項目の場合、値(文字列)を「MM/dd/yyyy」形式で指定します。
  3. 日時項目の場合、値(文字列)を「MM-dd-yyyy hh:mm aa」形式で指定します。
  4. 真偽値項目の場合、真偽値(文字列)を「true」または「false」で指定します。
  5. その他の項目の場合、値(文字列)を指定します。
  6. 値を指定する際には、項目の文字数の上限や小数点の桁数の制限を超えないようにする必要があります。
5. editable(真偽値):対象の項目の値が編集可能かどうかを指定するキーです。
サンプルのコードは、こちらをご参照ください。

問い合わせの送信

ウィジェットで問い合わせを送信できるようにするには、以下のメソッドを使用します。このメソッドには、問い合わせの送信後に関する処理(イベントのコールバック処理)の設定も含まれます。

Swift

  1. ZDPortalSubmitTicket.getCallbackOnCreateTicket
    { ticket in
    // will get ticket object on success
    }
    onError:
    { error in
    // will get error on failure
    }

Objective-C

  1. [ZDPortalSubmitTicket getCallbackOnCreateTicketWithCompletion:^(ZDPTicket * ticket)
    {
    // will get ticket object on success
    } onError:^(NSError * error)
    {
    // will get error on failure
    }];
認証ユーザーが問い合わせを送信すると、問い合わせの詳細がアプリに送信されます。ゲストユーザー(匿名ユーザー)の場合、問い合わせ番号のみがアプリに送信されます。

問い合わせの送信送信における独自の操作の設定

問い合わせの送信画面では、利用者は問い合わせに返信したり、コメントを追加したり、問い合わせを完了に設定したりすることができます。

利用者がどこでもサポートの問い合わせの送信画面にアクセスした際に行える操作を設定するには、以下のメソッドを使用します。

Swift

  1. ZDPTicketConfiguration.configure.isAddTicketAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isReplyAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isCommentAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isCommentEditAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isTicketUpdateAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isCommentDeleteAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isCustomerHappinessThreadAllowed = <#Bool#>

Objective-C

  1. ZDPTicketConfiguration.configure.isAddTicketAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isReplyAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isCommentAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isCommentEditAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isTicketUpdateAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isCommentDeleteAllowed = <#Bool#>
    ZDPTicketConfiguration.configure.isCustomerHappinessThreadAllowed = <#Bool#>

ユーザー情報の更新

Zoho Deskに追加されたユーザーの詳細を更新するには、以下のAPIを使用します。

Swift

  1. import ZohoDeskPortalAPIKit
        ...
        var body = [String : Any]()
        body["displayName"] = "displayName"
        body["mobile"] = "123456"

    ZohoDeskPortalSDK.updateUserInformation(with: body)
    { profile, error in
    // on success only profile will return a value, error will return nil
    // on failure only error will return a value, profile will return nil
    }

Objective-C

  1. NSMutableDictionary * body = [NSMutableDictionary new];
        [body setObject:@"displayName" forKey:@"displayName"];
        [body setObject:@"123456" forKey:@"mobile"];
        [ZohoDeskPortalSDK updateUserInformationWith:body onCompletion:
    ^(Profile * profile, NSError * error)
    {
        // on success only profile will return a value, error will return nil
        // on failure only error will return a value, profile will return nil
    }];

パラメーター

Dictionary(文字列):キーと値のペアです。使用できるキーは、次のとおりです:XPhoneFacebookNamedisplayNamemobilecountrylocaletimeZone