diff --git a/Integration Guides/Analytics.md b/Feature Guides/Analytics.md
similarity index 100%
rename from Integration Guides/Analytics.md
rename to Feature Guides/Analytics.md
diff --git a/Integration Guides/Features.md b/Feature Guides/Features.md
similarity index 100%
rename from Integration Guides/Features.md
rename to Feature Guides/Features.md
diff --git a/Integration Guides/Payments.md b/Feature Guides/Payments.md
similarity index 100%
rename from Integration Guides/Payments.md
rename to Feature Guides/Payments.md
diff --git a/Integration Guides/Theming.md b/Feature Guides/Theming.md
similarity index 100%
rename from Integration Guides/Theming.md
rename to Feature Guides/Theming.md
diff --git a/Integration Guide.md b/Integration Guide.md
new file mode 100644
index 0000000..45b9abb
--- /dev/null
+++ b/Integration Guide.md
@@ -0,0 +1,391 @@
+# INTEGRATION GUIDE
+
+This Integration Guide contains chronological steps required to integrate the Haptik iOS SDK.
+
+---
+
+
+### Prerequisites
+
+Minimum Deployment Target: **iOS 9.0**
+
+Supported Device Orientation: **Portrait**
+
+---
+
+
+### I. Installation
+
+1. Add the following dependencies in `Podfile` -
+ ```
+ pod 'HaptikLib'
+ pod 'NativeSSOLogin', :git=>'https://bitbucket.org/agi_sso/nativessologin.git', :tag => '1.0.12'
+ ```
+
+2. Run `pod install`
+
+---
+
+### II. Required Permissions
+
+HaptikLib requires some permissions and custom properties to function.
+Add the following snippets in your `info.plist` file -
+
+1. Allow arbitrary network loads to be requested
+
+ ```
+ NSAppTransportSecurity
+
+ NSAllowsArbitraryLoads
+
+
+ ```
+
+2. Haptik only supports Portrait orientation
+
+ ```
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+
+ ```
+
+3. Privacy - Photo Library Usage Description to enable a user to upload photos from the photos gallery in the chat flows
+
+ ```
+ NSPhotoLibraryUsageDescription
+ To enable usage & saving of photosNSPhotoLibraryAddUsageDescription
+ To enable usage & saving of photos
+ ```
+
+4. Privacy - Camera Usage Description to enable a user to upload photos from camera within chat flows
+
+ ```
+ NSCameraUsageDescription
+ To enable camera usage for uploading photos
+ ```
+
+---
+
+
+### III. Initialization
+
+1. The Haptik SDK should be initialized before it can perform any operations
+2. _Initialization_ here implies providing appropriate **API Key**, **Client ID**, **Base URL** & **Run Environment** to Haptik SDK
+3. The following `key-value` pairs should be present in the Custom Dictionary `HaptikLib` -
+
+ | Key | Value |
+ |-----------------------|-----------------------|
+ |apiKey |INSERT_API_KEY_HERE|
+ |baseUrl |INSERT_BASE_URL_HERE|
+ |clientID |INSERT_CLIENT_ID_HERE|
+ |runEnvironment |INSERT_APPROPRIATE_RUN_ENVIRONMENT|
+
+4. The Haptik SDK takes all the necessary things from app's `Info.plist` file automatically
+5. Add these initialization keys substituted with their appropriate values in a custom dictionary named `HaptikLib`
+6. On opening app's `Info.plist` in _Source Code_ format & add the required keys as illustrated below -
+
+ ```
+ HaptikLib
+
+ apiKey
+ INSERT_API_KEY_HERE
+ baseUrl
+ INSERT_BASE_URL_HERE
+ clientID
+ INSERT_CLIENT_ID_HERE
+ runEnvironment
+ INSERT_APPROPRIATE_RUN_ENVIRONMENT
+
+ ```
+
+ **Note:** The Base URL will be different for different `runEnvironment` as specified below -
+
+ ```
+ HaptikLibEnvProduction = 0,
+ HaptikLibEnvStaging = 1,
+ HaptikLibEnvDev = 2
+ ```
+---
+
+
+### IV. AppDelegate Configurations
+
+1. Import HaptikLib in your AppDelegate Class
+ ```
+ @import HaptikLib;
+ ```
+
+2. Haptik uses the *application* instance and the *launchOptions* dictionary internally. The `Haptik.h` class provides a method to pass the required parameters.
+
+ ```
+ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+
+ ...
+
+ [[Haptik sharedSDK] notifyApplication:application launchedWithOptions:launchOptions];
+
+ return YES;
+ }
+ ```
+
+3. Haptik internally also opens urls which the client needs to return it true.
+
+
+ ```
+ (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options {
+
+ ...
+
+ BOOL isRedirectHandledByHaptik = [[Haptik sharedSDK] isRedirectHandled:url options:options];
+
+ return isRedirectHandledByHaptik;
+ }
+ ```
+
+4. Haptik can also be configured to send Push Notifications to the user. The client application needs to configure push notifications on their own end and have to pass the deviceToken which the application gets after requesting the user to send them Push Notifications.
+
+ ```
+ - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
+
+ ...
+
+ [[Haptik sharedSDK] setDeviceToken:deviceToken];
+ }
+ ```
+
+5. For Haptik to handle it's own notifications, you have to pass the **notification dictionary** that you get in the **notifications payload** and the instance of the `viewController` from where the notifications should be handled. It's also possible to determine whether notification payload is Haptik-specific or not.
+
+ ```
+ - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
+
+ ...
+
+ BOOL canBeHandledByHaptik = [[Haptik sharedSDK] canHandleNotificationWithUserInfo:response.notification.request.content.userInfo];
+
+ if (canBeHandledByHaptik) {
+ ...
+ NSLog(@"do housekeeping");
+ [[Haptik sharedSDK] handleNotificationWithUserInfo:PASS_NOTIFICATION_DICTIONARY_HERE controller:PASS_VIEWCONTROLLER_INSTANCE_HERE];
+ }
+ }
+ ```
+
+---
+
+
+### V. User Authentication
+
+1. After successful Initialization & App Delegate Configuration, SDK can enable a user to Signup for using Haptik services
+2. Haptik Signup is sub-divided in following 2 parts -
+ - Collecting required parameters of user according to Authentication(Signup) Type: _Basic(Guest)_ or _OTP Verified_ user
+ - Passing over the collected parameters to Haptik
+
+3. The public class `HPSignUpObject` is to be used for _collecting the required parameters_ as illustrated below -
+
+ ```
+ HPSignUpObject *signupObj = [HPSignUpObject buildWithAuthType:@"AUTH_TYPE_HERE" data:^(HPSignUpBuilder * _Nonnull builder) {
+
+ builder.userFullName = INSERT_NAME_HERE;
+ builder.userPhoneNumber = INSERT_PHONE_NUMBER_HERE;
+ builder.userEmail = INSERT_EMAIL_HERE;
+ builder.userCity = INSERT_CITY_HERE;
+ builder.authToken = INSERT_AUTH_TOKEN_HERE;
+ builder.authID = INSERT_AUTH_ID_HERE;
+ }];
+ ```
+
+#### Authentication Types -
+
+A. **Basic Authentication**
+1. Basic Authentication is a Guest signup that does not require any verification `auth_type = @"basic"`
+2. This is ideal for informational chatbots or when user verification is handled by a Third Party Service
+3. The `Name` parameter is _required_ while signing up as Basic type
+ ```
+ HPSignUpObject *signupObj = [HPSignUpObject buildWithAuthType:@"basic" data:^(HPSignUpBuilder * _Nonnull builder) {
+
+ builder.userFullName = @"John Appleseed";
+ }];
+ ```
+
+B. **OTP Authentication**
+
+1. An user’s mobile number OTP verification can be done by Haptik. Contact us for enabling server component for this.
+2. The following parameters are required -
+ - OTP Verified Mobile Number
+ - Token/TicketId for OTP verification
+ - User City
+ - User Email Address
+
+ **NOTE:** User City _must_ be one of following string types -
+ ```
+ [@"Mumbai", @"Bombay"]
+
+ [@"New Delhi", @"Delhi"]
+
+ [@"Bengaluru", @"Bangalore", @"Bengaluru South"]
+
+ [@"Chennai", @"Madras"]
+
+ [@"Pune", @"Poona"]
+
+ [@"Hyderabad", @"Secunderabad"]
+
+ [@"Kolkata", @"Calcutta"]
+
+ [@"Ahmedabad", @"Ahmadabad"]
+
+ [@"Thane", @"Mira Bhayandar", @"Mira Bhayander"]
+
+ [@"Navi Mumbai"]
+
+ [@"Gurugram", @"Gurgaon"]
+
+ [@"Noida", @"Greater Noida"]
+
+ OR
+
+ [@"Other"]
+ ```
+---
+
+
+### VI. User Signup Flow
+
+1. The `HPSignUpObject *signupObj` instance created in above step is now to be passed to SDK
+2. This step involves a network request so to maintain state of the application & update a user about current progress, the SDK provides following 2 APIs for flexibility -
+
+A. **Asynchronous (without Loading Screen)**
+
+1. `[[Haptik sharedSDK] signUpWith: completion:]` takes a `HPSignUpObject` instance and _on completion_ returns a `UIViewController` instance expected to be added on app's navigation stack
+2. The `UIViewController` instance returned on succesful signup represents the root _Inbox Screen_ of SDK
+3. The completion block is invoked on `mainQueue`
+4. Using `success` & `error` objects, any analytics / app state update / general housekeeping can be performed
+
+ ```
+ [[Haptik sharedSDK] signUpWith:signupObj completion:^(BOOL success, UIViewController * _Nullable initialVC, NSError * _Nullable error) {
+
+ NSLog(@"Do housekeeping using success & error");
+
+ if (success) {
+ [self.navigationController pushViewController:initialVC animated:YES];
+ }
+ else {
+ NSLog(@"User Signup Failed!");
+ }
+ }];
+ ```
+
+B. **Synchronous (with Customisable Loading Screen)**
+
+1. `[[Haptik sharedSDK] signUpWithLoadingScreenFor: completion:]` takes a `HPSignUpObject` instance and _immediately returns_ `UIViewController` instance expected to be added on app's navigation stack
+2. The `UIViewController` instance returned immediately represents the root _Inbox Screen_ of SDK
+3. The returned `UIViewController` instance has a built in _Customisable Loading Screen_ shown while signup network request is in progress
+4. The root _Inbox Screen_ of SDK is automatically presented on succesful signup
+5. String attributes of `loadingTitleText` & `loadingSubtitleText` can be set to present a custom message to user while signup network request is in progess
+6. If not set, the default string values of the above mentioned attributes is as follows -
+ - `loadingTitleText`: @"Behind every successful person is an Assistant!"
+ - `loadingSubtitleText`: @"Coming right up…"
+7. These attributes should be set before `[[Haptik sharedSDK] signUpWithLoadingScreenFor: completion:]` function is invoked
+ ```
+ [Haptik sharedSDK].loadingTitleText = @"My custom title text for user";
+ [Haptik sharedSDK].loadingSubtitleText = @"My custom subtitle text for user";
+
+ UIViewController * __block initialVC = [[Haptik sharedSDK] signUpWithLoadingScreenFor:signupObj completion:^(BOOL success, NSError * _Nullable error) {
+
+ NSLog(@"Do housekeeping using success & error");
+
+ if (success) {
+ NSLog(@"User Signup Success! Can do Analytics, state update, etc here");
+ }
+ else {
+ NSLog(@"User Signup Failed!");
+ }
+ }];
+
+ [self.navigationController pushViewController:initialVC animated:YES];
+ ```
+
+---
+
+### VII. Existing Users Flow (Signed-up users)
+
+1. If a user is already signed-up in Haptik SDK such a user should be directly presented SDK's root _Inbox Screen_
+2. The SDK provides a BOOL attribute `isUserSignedUp` to verify whether the user is successfully signed up or not
+ - If YES, then the user should be presented the root _Inbox Screen_ using the `getInitialVC` function
+ - If NO, then the user should be taken to Sign Up flows as mentioned above in Step V & VI
+3. The `getInitialVC` function returns nil if a user is not signed-up in Haptik SDK
+
+ ```
+ if ([[Haptik sharedSDK] isUserSignedUp]) {
+
+ // perform analytics, state update, etc
+ UIViewController *haptikInboxScreen = [[Haptik sharedSDK] getInitialVC];
+ [self.navigationController pushViewController:haptikInboxScreen animated:YES];
+ }
+ else {
+ // Continue with the SignUp flow here
+ }
+ ```
+
+---
+
+
+## VIII. Share Functionality
+
+Haptik provides inbuilt share functionality where user can share the client app with others via social media apps or any other medium.
+
+- When user shares something from inside the HaptikSDK, a **custom content message** gets shared. Client can **override this message** with their own custom content along with their `deeplink` URL.
+
+- Haptik also provides an inbuilt feature where it can take the users **directly to the client application’s App Store Page** to rate the application.
+
+The option to set these values is given in the `Info.plist` file of the application.
+
+> If the values are not added then by default Haptik is shared with its custom text.
+
+You have add a **Dictionary** inside the `HaptikLib` dictionary which you added for credentials during the initialization. Note that the keys should match the provided keys otherwise default behaviour will be implemented.
+
+The dictionary should be named `shareAndRate` and the following **key-value** should be present in it:
+
+| Key | Value |
+|-----------------------|--------------------|
+|appStoreUrl |INSERT_APP_STORE_URL|
+|shareText |INSERT_SHARE_TEXT|
+|shareUrl |INSERT_SHARE_URL|
+
+##### Example:
+
+```
+HaptikLib
+
+ apiKey
+ INSERT_API_KEY_HERE
+ baseUrl
+ INSERT_BASE_URL_HERE
+ clientID
+ INSERT_CLIENT_ID_HERE
+ runEnvironment
+ INSERT_APPROPRIATE_RUN_ENVIRONMENT
+
+ ***
+
+ shareAndRate
+
+ appStoreUrl
+ INSERT_APP_STORE_URL
+ shareText
+ INSERT_SHARE_TEXT
+ shareUrl
+ INSERT_SHARE_URL
+
+
+ ***
+
+
+```
+
+> Inside the shareText wherever there will be %@ present, it will be replaced by the shareUrl.
+
+
+---
diff --git a/Integration Guides/Integration.md b/Integration Guides/Integration.md
deleted file mode 100644
index 6332fef..0000000
--- a/Integration Guides/Integration.md
+++ /dev/null
@@ -1,399 +0,0 @@
-# HAPTIK iOS SDK
-INTEGRATION GUIDE (v0.3.0)
-
-### Authors
-
-[Simranjot Singh](mailto:simranjyot@haptik.co)
-[Yogesh Singh](mailto:yogesh@haptik.ai)
-
-## Introduction
-
-Say goodbye to App Fatigue. Instantly enable 100+ chatbots across various daily tasks.
-The mobile apps industry is about a decade old but publishers are still trying to figure out hacks to improve user retention. App fatigue is not just a theory any more: 60% of apps are uninstalled within the first week. The Haptik Assistant SDK enables a layer of daily use chatbots in any mobile app. Instantly provide a lot more reasons for users to keep using your app. You can also monetize through transactions and the Haptik ads platform.
-
-
-This documentation contains the information that will be required to integrate the Haptik iOS SDK end to end. The document is divided in a progressing way as what is needed to be done step by step so as to integrate it successfully.
-
----
-
-
-## Prerequisites
-
-Minimum Deployment Target: **iOS 9.0**
-
-Supported Device Orientation: **Portrait**
-
----
-
-
-## Step 1 (Installation)
-
-Add the following dependencies to your `Podfile` and run `pod install`:
-
-- **'HaptikLib'**
-- **'NativeSSOLogin', :git=>'https://bitbucket.org/agi_sso/nativessologin.git', :tag => '1.0.12'**
-
-
----
-
-
-## Step 2 (Required Permissions)
-
-HaptikLib requires some permissions and custom properties to function. Add the following snippets in your `info.plist` file.
-
-* Allow arbitrary network loads to be requested. Add the following snippet in your `Info.plist` file:
-
-```
-NSAppTransportSecurity
-
- NSAllowsArbitraryLoads
-
-
-```
-
-* HaptikLib only supports UIInterfaceOrientationPortrait. Add the following snippet in your `Info.plist` file:
-
-```
-UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
-
-```
-
-* Privacy - Photo Library Usage Description. The user can upload photos from the photos gallery in the chat flows, hence this permission is required. Add the following snippet:
-
-```
-NSPhotoLibraryUsageDescription
- INSERT_YOUR_DESCRIPTION_HERENSPhotoLibraryAddUsageDescription
- INSERT_YOUR_DESCRIPTION_HERE
-```
-
-* Privacy - Camera Usage Description. The user can upload photos from directly from the camera in the chat flows, hence this permission is required. Add the following snippet:
-
-```
-NSCameraUsageDescription
- INSERT_YOUR_DESCRIPTION_HERE
-```
-
----
-
-
-## Step 3 (Initialization)
-
-The HaptikLib SDK should be initialized before it can perform any operations. *Initialization* here implies providing appropriate **API Key**, **Client ID**, **Base URL** & **Run Environment** to HaptikLib SDK. These would be sent over by Haptik via appropriate communication channels. Once above mentioned keys are made available perform the following things:
-
-> Note: The HaptikLib SDK takes all the necessary things from your *Info.plist* file automatically. So you need to add all the required initialization and other required keys along with their appropriate values in a dictionary under a custom key called `HaptikLib` only once.
-
-The following `key-value` pairs should be present in a Custom Dictionary `HaptikLib`:
-
-| Key | Value |
-|-----------------------|--------------------|
-|apiKey |INSERT_API_KEY_HERE|
-|baseUrl |INSERT_BASE_URL_HERE|
-|clientID |INSERT_CLIENT_ID_HERE|
-|runEnvironment |INSERT_APPROPRIATE_RUN_ENVIRONMENT|
-
-Open your app’s *.plist* file in *Source Code* format & add the required keys as illustrated in snippet below.
-
-```
-HaptikLib
-
- apiKey
- INSERT_API_KEY_HERE
- baseUrl
- INSERT_BASE_URL_HERE
- clientID
- INSERT_CLIENT_ID_HERE
- runEnvironment
- INSERT_APPROPRIATE_RUN_ENVIRONMENT
-
-```
-
-> Note: You can set runEnvironment with the following options. The Base URL will be different for different runenvironments.
-
-```
-HaptikLibEnvProduction = 0,
-HaptikLibEnvStaging = 1,
-HaptikLibEnvDev = 2
-```
-
----
-
-
-## Step 4 (AppDelegate Configurations)
-
-Import HaptikLib in your AppDelegate Class either by writing `#import ` or `@import HaptikLib;`
-
-- HaptikLib uses the *application* instance and the *launchOptions* dictionary internally. The `Haptik.h` class provides a method to pass the required parameters.
-
- Example:
-
- ```
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-
- [[Haptik sharedSDK] notifyApplication:application launchedWithOptions:launchOptions];
-
- return YES;
- }
- ```
-
-- HaptikLib internally also opens urls which the client needs to return it true.
-
- Example:
-
- ```
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options {
-
- return [[Haptik sharedSDK] isRedirectHandled:url options:options];
- }
- ```
-
-- HaptikLib can also be configured to send Push Notifications to the user. The client application needs to configure push notifications on their own end and have to pass the deviceToken which the application gets after requesting the user to send them Push Notifications.
-
- Example:
-
- ```
- - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
-
- [[Haptik sharedSDK] setDeviceToken:deviceToken];
- }
- ```
-
-- For HaptikLib to handle it's own notifications, you have to pass the **notification dictionary** that you get in the **notifications payload** and the instance of the `viewController` from where the notifications should be handled. You can also check if the notification belongs to HaptikLib or not.
- Example:
-
- ```
- - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
-
- BOOL canBeHandledByHaptik = [[Haptik sharedSDK] canHandleNotificationWithUserInfo:response.notification.request.content.userInfo];
-
- if (canBeHandledByHaptik) {
- NSLog(@"do housekeeping");
- [[Haptik sharedSDK] handleNotificationWithUserInfo:PASS_NOTIFICATION_DICTIONARY_HERE controller:PASS_VIEWCONTROLLER_INSTANCE_HERE;
- }
- }
- ```
-
- > You should add this function in all the different Notification Delegate methods in which you get the Notification Payload.
-
----
-
-
-## Step 5 (User Authentication)
-
-After successfully configuring & setting up HaptikLib, you'll be able to proceed to the user signup flow. Signup includes mainly two steps. First, collecting the required parameters of the end user according to the type they are signing up (`Guest user` or `verified user`) and second passing the collected parameters to HaptikLib.
-
-###### Signup Types
-
-HaptikLib gives a public class `HPSignUpObject` which you can use to collect the required parameters. Each auth flows require a different set of parameters passed to HPSignUpObject. Contact Haptik for knowing more about your `Auth-Type` & `Auth-ID`.
-
-This class follows the builder pattern. Here's an example of how to make use of it:
-
-```
-HPSignUpObject *signupObj = [HPSignUpObject buildWithAuthType:@"AUTH_TYPE_HERE" data:^(HPSignUpBuilder * _Nonnull builder) {
-
- builder.userFullName = INSERT_NAME_HERE;
- builder.userPhoneNumber = INSERT_PHONE_NUMBER_HERE;
- builder.userEmail = INSERT_EMAIL_HERE;
- builder.userCity = INSERT_CITY_HERE;
- builder.authToken = INSERT_AUTH_TOKEN_HERE;
- builder.authID = INSERT_AUTH_ID_HERE;
- }];
-```
-
-- **Basic Auth**
-
- **Auth_Type = @"basic";**
-
- Basic Authentication is a guest form of signup that does not require any sort of server-server/ 3rd party verification. This is ideal for chat bots that are either informational in nature or where user identity is handled by a 3rd party provider.
-
- The following parameter is required while signing up with **BASIC** authType:
-
- - *Optional*: Name
-
-
- > Although name is optional, but it is recommended to provide user's name as it does help in customising user experience.
-
-
-- **OTP**
-
- **Auth_Type = @"otp";**
-
- An end user’s mobile number OTP verification can be done by Haptik. Please contact us for utilising this feature.
-
- The following parameter is compulsory while signing up with **OTP** authType:
-
- - *Mandatory*: OTP Verified Mobile Number
- - *Mandatory*: Token/TicketId for OTP verification (for 3-way handshake, creation of Wallet)
- - *Optional*: Resident City
- - *Optional*: Email (unverified is OK)
-
-
-> **NOTE** that city name **MUST** be either one of the cities mentioned on Haptik SDK or provide "Other" as a String.
-
-**City Appendix**:
-```
-[@"Mumbai", @"Bombay"]
-
-[@"New Delhi", @"Delhi"]
-
-[@"Bengaluru", @"Bangalore", @"Bengaluru South"]
-
-[@"Chennai", @"Madras"]
-
-[@"Pune", @"Poona"]
-
-[@"Hyderabad", @"Secunderabad"]
-
-[@"Kolkata", @"Calcutta"]
-
-[@"Ahmedabad", @"Ahmadabad"]
-
-[@"Thane", @"Mira Bhayandar", @"Mira Bhayander"]
-
-[@"Navi Mumbai"]
-
-[@"Gurugram", @"Gurgaon"]
-
-[@"Noida", @"Greater Noida"]
-```
-
----
-
-
-## Step 6 (User Signup Flow)
-
-To continue from the User Authentication, the signUp object is now passed to Haptik for signing up the user. Signing up the user is an API call and can take up some time. HaptikLib provides two different ways for that, one with a customised loading screen and other without it.
-
-###### Type I (Without Loading Screen)
-
-HaptikLib defines a method that takes up the `HPSignUpObject` and returns the a `UIViewController` instance for you to push in the completion after the user has successfully signed up. The completion is returned on `mainQueue` by default.
-
-Here an example:
-
-```
-[[Haptik sharedSDK] signUpWith:signupObj completion:^(BOOL success, UIViewController * _Nullable initialVC, NSError * _Nullable error) {
-
- if (success) {
- [self.navigationController pushViewController:initialVC animated:YES];
- }
- }];
-```
-
-###### Type II (With Loading Screen)
-
-This method also takes the same parameters just as the above method takes. The key difference is that the function returns a `UIViewController` instance to push immediately irrespectively if the API call is still in progress. The returned view controller itself takes up the responsibility of showing the customised loading screen and the switching back to the desired `Inbox View`.
-
-Here an example:
-
-```
-UIViewController * __block initialVC = [[Haptik sharedSDK] signUpWithLoadingScreenFor:signupObj completion:^(BOOL success, NSError * _Nullable error) {
-
- if (success) {
- }
- else {
- }
- }];
-
- [self.navigationController pushViewController:initialVC animated:YES];
-```
-
-This viewController takes custom text attributes individually to display the titles and subtitles on the Loading Screen. `Haptik.h` declares two properties named:
-
-- loadingTitleText:
-
- - **Default text**: @"Behind every successful person is an Assistant!"
-
-
-- loadingSubtitleText:
-
- - **Default text**: @"Coming right up…"
-
-You can set these properties before pushing the viewController and set the `title` & `subtitle` text on the loading screen, otherwise default text will be set. It is highly recommended to show this viewController while user is signing up on Haptik SDK to make a smooth user experience.
-
----
-
-
-## Step 7 (Existing Users flow)
-
-You need to handle the flow where the user has already signed up and you want to directly take the user to Haptik's `Inbox Screen`. HaptikLib provides a function named `isUserSignedUp` that returns a `BOOL` value for the same. If `YES` you can get the desired `viewController` from the method `getInitialVC` and push the user directly. The function will return `nil` if the user hasn't been signed up.
-
-Example:
-
-```
-if ([[Haptik sharedSDK] isUserSignedUp]) {
-
- [self.navigationController pushViewController:[[Haptik sharedSDK] getInitialVC] animated:YES];
- }
- else {
-
- // Continue with the SignUp flow here
- }
-```
-
----
-
-
-## Step 8 (Share Functionality)
-
-HaptikLib provides **inbuilt share functionality** where user can share the client app with others via social media apps or any other medium.
-
-- When user shares something from inside the HaptikSDK, a **custom content message** gets shared. Client can **override this message** with their own custom content along with their `deeplink` URL.
-
-- HaptikLib also provides an inbuilt feature where it can take the users **directly to the client application’s App Store Page** to rate the application.
-
-The option to set these values is given in the `Info.plist` file of the application.
-
-> If the values are not added then by default Haptik is shared with its custom text.
-
-You have add a **Dictionary** inside the `HaptikLib` dictionary which you added for credentials during the initialization. Note that the keys should match the provided keys otherwise default behaviour will be implemented.
-
-The dictionary should be named `shareAndRate` and the following **key-value** should be present in it:
-
-| Key | Value |
-|-----------------------|--------------------|
-|appStoreUrl |INSERT_APP_STORE_URL|
-|shareText |INSERT_SHARE_TEXT|
-|shareUrl |INSERT_SHARE_URL|
-
-Example:
-
-```
-HaptikLib
-
- apiKey
- INSERT_API_KEY_HERE
- baseUrl
- INSERT_BASE_URL_HERE
- clientID
- INSERT_CLIENT_ID_HERE
- runEnvironment
- INSERT_APPROPRIATE_RUN_ENVIRONMENT
-
- ***
-
- shareAndRate
-
- appStoreUrl
- INSERT_APP_STORE_URL
- shareText
- INSERT_SHARE_TEXT
- shareUrl
- INSERT_SHARE_URL
-
-
- ***
-
-
-```
-
-> Inside the shareText wherever there will be %@ present, it will be replaced by the shareUrl.
-
-
----
diff --git a/Integration Guides/TOI_SSO_Signup.md b/Integration Guides/TOI_SSO_Signup.md
deleted file mode 100644
index fb1c36b..0000000
--- a/Integration Guides/TOI_SSO_Signup.md
+++ /dev/null
@@ -1,44 +0,0 @@
-## **TOI_SSO**
-
-**Auth_Type = @"toi_sso";**
-
-In `TOI_SSO` authentication type user’s phone number will be validated from the Haptik Backend via a client API for additional security before Haptik account and wallet creation.
-
-The following parameters are required while signing up with **TOI_SSO** authType on top of what is required for **BASIC** authType:
-
-- *Mandatory*: OTP Verified Mobile Number
-- *Mandatory*: Token/TicketId for OTP verification (for 3-way handshake, creation of Wallet)
-- *Optional*: Resident City
-
-
-## Signup with SSO
-
-If you are using `SSO` for your signup process, then HaptikLib provides a different method all together mentioned below:
-
-```
-- (__kindof UIViewController *_Nullable)signUpUserWithSSO:(void (^)(BOOL success, NSError * _Nullable error))completion;
-```
-
-You don't have to pass any data for signing up in this method. This function will automatically determine if the user is signed in on SSO then it'll signup the user directly with the SSO Credentials otherwise with `Basic` Auth Type.
-
-Example:
-
-```
-UIViewController *initialVC = [[Haptik sharedSDK] signUpUserWithSSO:^(BOOL success, NSError * _Nullable error) {
-
- if (success) {
- // do housekeeping
- }
- else {
- UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Oops!"
- message:error.localizedDescription
- preferredStyle:UIAlertControllerStyleAlert];
-
- UIAlertAction *action = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleCancel handler:nil];
- [alert addAction:action];
- [self presentViewController:alert animated:YES completion:nil];
- }
- }];
-
- [self.navigationController pushViewController:initialVC animated:YES];
-```