Desk360 Docs
  • Introduction to Desk360
  • 🚀Quick Start Guide
  • Start
    • Sign Up
    • Verify Your Email
    • Add Product/Brand
    • Channel Integration
    • Add User
    • Invite Your Team
  • User Communication Channels
    • In-App Message Box Channel
    • Web Contact Us Channel
    • Email Channel
    • Apple App Store Channel
    • Google Play Store Channel
    • Huawei AppGallery Channel
    • WhatsApp Channel
    • Live Chat Channel
    • Instagram Channel
    • Facebook Channel
    • Twitter Channel
  • Desk360 Platform Navigation
    • Dashboard
    • Tickets
      • Creating Internal Tickets
      • Listing and Filtering
      • Multiple Operations
      • Actions
      • Ticket Details
      • Ticket Status
      • Ticket Types
      • Ticket Reasons
      • Ready Answers
      • Ticket History Log
      • Callback Function
      • Automatic Replies
        • Automatic Replies During Working Hours
      • Automatic Assignments
      • Assignment by Request Type
      • Prioritization Rules
        • Setting Priorities
        • Creating Folders
      • SLA Management
      • Business Hours
      • Tag Management
    • Chat
      • Chat Settings
      • Automatic Assignments
      • Manual Assignments
      • Human Agent Functionality
      • Custom Chatbots
      • Chat History Forwarding
      • Bulk Actions
    • Reports
      • Ticket Reports
        • Ticket Analysis Reports
        • User Performance
      • Chat Reports
        • Chat Reports
        • User Reports
        • Chat Cockpit
      • SLA Reports
    • Product and Communication Channel Integrations
      • In-App Message Box Channel Integration
        • In-App Message Box Integration Settings
        • Customizable In-App Message Box
        • In-App Message Box Notifications
      • Web Contact Us Channel Integration
        • Web Contact Us Form
        • FAQ and Contact Us Page Settings
          • General Settings
          • FAQ Settings
          • Contact Us Page Settings
      • Email Channel Integration
        • Gmail SMTP Integration
        • Yandex SMTP Integration
        • Outlook SMTP Integration
        • E-mail features
      • Apple App Store Channel Integration
      • Google Play Store Channel Integration
      • Huawei AppGallery Channel Integration
      • WhatsApp Channel Integration
        • WABA Prerequisites
        • New WhatsApp Business API Pricing
        • WhatsApp Integration Steps
        • WhatsApp Auto-Reply Function
        • WhatsApp Custom Bots
        • WhatsApp Message Templates
        • How to use WhatsApp Message Templates
        • WhatsApp Message Template Statistics
        • WhatsApp Web Widget
      • Live Chat Channel Integration
      • Facebook Channel Integration
      • Instagram Channel Integration
      • Twitter Channel Integration
    • Chatbot Integration
    • Settings
      • Import Data
      • Language Settings
      • Professional Support In 40 Languages
    • Users
      • User Groups
      • User Roles
      • User Settings
  • INTEGRATIONS
    • JIRA
    • Slack
    • Trello
    • Alotech
  • Desk360 Mobile SDK
    • iOS SDK
    • Android SDK
    • Flutter SDK
    • React Native SDK
  • DESK360 MOBILE CHAT SDK
    • Mobile Chat iOS SDK
    • Mobile Chat Android SDK
  • DESK360 API (1.0.0)
    • API Documentation
Powered by GitBook
On this page
  • Features
  • Installation
  • Usage
  • Support

Was this helpful?

  1. Desk360 Mobile SDK

iOS SDK

PreviousAlotechNextAndroid SDK

Last updated 2 years ago

Was this helpful?

Desk360 is an iOS SDK to help you embedding customer support in your iOS applications with ease!

Features

The Desk360 Mobile SDK for iOS lets customers do any of the following:

  • Create new support tickets.

  • View and comment on existing tickets.

  • Interactively communicate with related support teams.

  • Use functions such as ticket prioritization, folder creating, SLA setting, etc.

  • Get detailed reports on both tickets and support agents.

  • Customize the look of your support system on .

Installation

Using CocoaPods

To integrate Desk360 in your Xcode project using , specify it in your Podfile:

pod 'Desk360'

Using SPM

dependencies: [
    .package(url: "https://github.com/Teknasyon-Teknoloji/desk360-ios-sdk", .branch("master"))
]

Usage

Important footnot

You must add your info.plist file.

<key>NSPhotoLibraryUsageDescription</key>
<string>Allow the app to access your photos.</string>

Permission text is optional. you can type whatever you want. But this permission not optional. If you didn't add this permission. Desk360 Images attachment property doesn't work.

Start Desk360 with appId -and an optinal deviceId, an optional language-

import Desk360

let props = Desk360Properties(appID: "1234")

// Or if you would like to provide more info here is a full list of the params
let props = Desk360Properties(
        appKey: "1234",
        deviceID: "34567",
        environment: .production,
        language: "en",
        country: "TR",
        userCredentials: .init(name: "John Doe", email: "john@doe.com"),
        bypassCreateTicketIntro: true,
        jsonInfo: ["a": 500, "b": "c"]
    )

Desk360.start(using: props)s

Using Desk360

import Desk360

class ExampleViewController: UIViewController {

  override func viewDidLoad() {
    super.viewDidLoad()
    Desk360.show(on: self, animated: true)
  }
  
}

Using Optional Notification System

If you need to send a notification when a message is sent to the users. You have to do this integration.

import Desk360

@UIApplicationMain
final class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
       Desk360.setPushToken(deviceToken: deviceToken)
  }
  
}

Also if you want notification redirect deeplink system. You should some extra integration.

import Desk360

@UIApplicationMain
final class AppDelegate: UIResponder, UIApplicationDelegate {
  
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
  
      Desk360.applicationLaunchChecker(launchOptions)
      if #available(iOS 10.0, *) {
          let center = UNUserNotificationCenter.current()
          center.delegate = self
      }
      return true
      
    }
}


// MARK: - UNUserNotificationCenterDelegate
extension AppDelegate: UNUserNotificationCenterDelegate {

  func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
      completionHandler([.alert])
      Desk360.willNotificationPresent(notification.request.content.userInfo)
  }

  func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
      Desk360.applicationUserInfoChecker(userInfo)
  }
  
  @available(iOS 10.0, *)
  public func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
      Desk360.applicationUserInfoChecker(response.notification.request.content.userInfo)
  }
}

When you click on the notification when your application is closed, you need to add this code on which page you want Des360 to open.

import Desk360

final class YourMainViewController: UIViewController {

  override func viewDidLoad() {
    super.viewDidLoad()
    
    Desk360.showWithPushDeeplink(on: self)
  }

}

Getting the unread tickets

If you would like to get a list of the unread tickets you can do so like follows:

  Desk360.getUnreadTickets { results in
			switch results {
			case .failure(let error):
				print(error.localizedDescription)
			case .success(let tickets):
				print("Tickets: \(tickets.count)")
			}	
	}

You can show the unread tickets the way that fits your app design and expierence. If you want to navigate to a specific ticket detail you can do so so by following:

  let detailsViewController = Desk360.ticketDetailsViewController(ofTicket: unreadTicket)
	self.present(detailsViewController, animated: true, completion: nil)

Customize Desk360 Theme

Support

Note: If no deviceId is provided, Desk360 will use device's , which might cause your app to lose tickets when the application is deleted. If use environment type .production, Desk360 will look at prod url. If no application language is provided, Desk360 will use device's language.

After the above integration, it is sufficient to make the notification certificate settings in the admin panel. You can now use notifications

You should use dashboard for custom config.

For further information, please with contact us

Visit our page for usage, technical setup and detailed info.

Desk360 panel
CocoaPods
UUID
Desk360
Desk360
support@desk360.com
GITHUB