Developer Docs | Kommunicate

Developer Docs | Kommunicate

  • Docs

›iOS

Web

  • Installation
  • CMS Installation
  • Authentication
  • Conversation
  • Conversation Assignment
  • Customization
  • Localization
  • Logout
  • Troubleshooting

Android

  • Installation
  • Authentication
  • Push Notification
  • Conversation
  • Customization
  • Localization
  • Logout

iOS

  • Installation
  • Authentication
  • Push Notification
  • Conversation
  • Customization
  • Localization
  • Logout
  • Troubleshooting

React Native

  • Installation
  • Authentication
  • Push Notification
  • Conversation
  • Customization
  • Logout

Flutter

  • Installation
  • Authentication
  • Customization
  • Conversation
  • Push Notification

Ionic/Cordova/Phonegap

  • Installation
  • Authentication
  • Push Notification
  • Conversation
  • Customization
  • Localization
  • Logout
  • Resolving Errors

Rich Messages

  • How To Use
  • Types of Rich Messages

Bots

  • Bot setup
  • Dialogflow Integration
  • Lex Integration
  • Kompose Bot Builder
  • Custom Bot Integration
  • Import Kompose Bot
  • Bot Samples

Integrations

  • Zapier

Platform APIs

  • Authentication
  • Endpoints

Dashboard Features

  • Analytics

Configuration

  • Email Fallback
  • Webhooks
  • Access Token URL

Authentication

Setup

There is a setup call that you need to do before registration or login. You can get your APP_ID by signing up on Kommunicate dashboard. In your AppDelegate, first import Kommunicate:

import Kommunicate

Then, in the application:didFinishLaunchingWithOptions: method, setup Kommunicate as shown below

Kommunicate.setup(applicationId: <APP_ID>)

ios-setup1.png

In case of 'no such module' error, check the following troubleshooting intsruction:

Once you complete the pod installation, close the project and open .xcworkspace file then build the project to avoid the above mentioned error.

Registration/Login

Convenient methods are present in Kommunicate class to register a user on Kommunicate.

Currently we support two different types of users on our iOS SDK:

1. Visitors

A random Id will be assigned as an userId if you don't have any information about the users. So first get the userId for an anonymous user as described below and, pass the same in user registration.

let userId = Kommunicate.randomId()

Note: The above line should be passed in the registration process.

You don't have to store this id on your side. In the user registration section, we show how to check if the user is already logged in.

2. Pre chat Lead Collection

For collecting user contact information before initiating the chat, show the Pre chat view like this:

let preChatVC = KMPreChatFormViewController(configuration: Kommunicate.defaultConfiguration)
preChatVC.delegate = self // set the delegate to self to receive callbacks
self.present(preChatVC, animated: false, completion: nil) // To present

Pre chat view screenshot

Confirm your ViewController to the KMPreChatFormViewControllerDelegate to get the callbacks when a user taps the submit or close button:

extension ViewController: KMPreChatFormViewControllerDelegate {

    func userSubmittedResponse(name: String, email: String, phoneNumber: String) {
        self.dismiss(animated: false, completion: nil)
        
        // Register the user as described below.
        // After successful registration, launch a conversation.
    }

    func closeButtonTapped() {
        self.dismiss(animated: false, completion: nil)
    }
}

3. Registered User

If the user is logged in your app then you can pass the user information in this way.

// Use this while creating a `KMUser` object below.
let userId = <pass a unique key>
let emailId = <pass user's emailId> // Optional

Register User

To register a user to the Kommunicate server, use below method from Kommunicate class:

Create a KMUser object and pass it to the registerUser method:

let kmUser = KMUser()
kmUser.userId = userId
kmUser.displayName = displayName
kmUser.email = emailId // Optional
kmUser.applicationId = <APP_ID>

// Use this same API for login
Kommunicate.registerUser(kmUser, completion: {
    response, error in
    guard error == nil else {return}
    print("Success")
})

Passing on additional details as metadata

Sometimes, you may need to pass additional details for the user apart from the already existing properties of KMUser. You can pass the additional details in metadata of the KMUser object.

// This is example data. You can set it according to the additional details you want to add
let userMetadata = NSMutableDictionary()
userMetadata["department"] = "Engineering"
userMetadata["designation"] = "Software Engineer"
userMetadata["team"] = "Device Team"

kmUser.metadata = userMetadata

To check if user is already logged in, use below API:

if Kommunicate.isLoggedIn {
  // User is already logged in
}

Note: To avoid calling in registration everytime use isLoggedIn to check if the user is already logged in or not.

What Next?

  1. Check out the Conversation Section where you will get the details for creating and launching a conversation.
  2. Enable Push Notifications to get real-time updates.
← InstallationPush Notification →
  • Setup
  • Registration/Login
    • 1. Visitors
    • 2. Pre chat Lead Collection
    • 3. Registered User
    • Register User
    • Passing on additional details as metadata
    • What Next?
Facebook Open Source

710 East Wing Street,
Arlington Heights, IL 60004,

(+1) (310) 909-7458
hello@kommunicate.io

Docs
WebAndroidiOSIonic/PhonegapReact NativeFlutter
Product
Pricing and FAQsRequest Demo
Social
FacebookTwitterLinkedin
Copyright © 2021 Kommunicate.io.