Building a Simple iOS App for Service Engineers using Zoho CRM

Building a Simple iOS App for Service Engineers using Zoho CRM

Not Every department in your company works the same, With the help of Zoho CRM SDKs not only you can create customised experiences for your CRM users but also build custom solutions on top of Zoho CRM to run your business.

Introducing SerWiz - A simple mobile app for service engineers, through which they could have a quick look at their assigned jobs, go on the field and get their job done, all of this using Zoho CRM as the backend/the source of data.




We'll be using the Zoho CRM iOS SDK to build our app for iPhone and iPad. We'll also be using Zoho CRM Portals to give restricted access to Service engineers.

Note: It's not necessary to know iOS Development to understand this post, although it helps if you know a bit of it. 

Setup

Building a mobile app on Zoho CRM has two parts - Configuring Zoho CRM and building the mobile app in a particular platform, in this case, the iOS Platform.

Setting up Zoho CRM
  • Create a Client Portal for Zoho CRM. This will allow Service Engineers to login to Zoho CRM and access the data that has been disclosed to them

  • Add Service Engineers either as Contacts or through a custom module and invite them to the client portal we've just created. For simplicity, We will add them as Contacts for now.

  • Create a Custom Module for collecting Service Requests from Customer Complaints. This module will contain details like the affected product, details of the service request etc. Here we also ensure to add both the Customer and the Service Engineer as lookup fields so that we can associate them to the incoming service request.

  • Setup permission for Portal users,i.e Service Engineers so that they can access the necessary records in Zoho CRM.

  • Note: It is important to enable the Service Requests module and filter them by "Service Engineers" so that the Service Engineers in the portal will be shown their relevant Service requests

Getting Started With Zoho CRM iOS SDK

Zoho CRM iOS SDK is the easiest way to connect your app with Zoho CRM. The SDK takes care of all the heavy lifting that an app needs like Authentication, API calls, Data Parsing etc so that you can focus on delivering the best mobile experience to your users.

Prerequisites

  • A Mac Running MacOS Mojave or later

  • Download and Install XCode 10.2 or higher

  • Download and install Cocoapods, A Package Manager for iOS development

  • NPM

  • (Optional) A actual iOS device to test your app

Adding the Zoho CRM SDK to your XCode Project

  • You can also follow the instructions over here to setup Zoho CRM SDK for your project.

Before starting to code the app, it is always a good idea to visualize the flow of the app. Here's a simple flowchart for the same



Adding Authentication and Login to your iOS App

Authentication is the most important part of any application, and without proper authentication, one cannot access the underlying service.Building your own Authentication service is a pain, and there are so many things that could go wrong. 

The Zoho CRM SDK takes care of Securing authentication using the iOS Keychain store to provide a highly secure login layer for your app.

Zoho CRM iOS SDK provides a very handy class ZVCRMLoginHandler for handling Login for Portal users. Note that this class is different from the ZCRMLoginHandler which lets Zoho CRM users login.

For more details on how this class is used, check out the AppDelegate.swift in the shared Project.

Fetching Records from Modules

Data is the core of any application and for our application, we are sourcing our data from Zoho CRM. The Zoho CRM iOS SDK provides native Swift APIs to connect with the back end and fetch the data required.

For our app, we need all the service requests for the existing user from the custom module "Service Requests". This is achieved by the following code

  1. ZCRMSDKUtil.getModule(moduleAPIName: "Service_Requests") { (result) in 
  2. // Work with the result here
  3. }

(For the detailed code, check ViewController.swift file)

Once we get all the records from Zoho CRM, we can populate the list view in our application with the necessary details from the CRM records. 

For example, we can access the name of the service request using this code

  1. let name = record.getData()["Name"] as! String

(For detailed code, check WorkOrderTableViewCell.swift file)

Create and attach a note to a Service Request

Once the service engineer has completed the job, we create a note with details like - total time taken to complete the job, customer sign, payment reference number etc and add to the Service Request. 

Creating and adding a note is very simple using the CRM SDK, this is the code snippet as follows

  1. let note = workOrder?.newNote(content: jobCompletionNoteString)
  2. self.workOrder?.addNote(note: note!, completion: { [weak self] (result) in 
  3. // Completion block for creating a note
  4. }

(For detailed code, check `CompletionViewController.swift`)

I've shared the link to source code so that you can have a look at the code, although I've redacted the Client ID and Client Secret because I've used my personal Zoho account. Check out the Readme.md file to know more about how the code is structured. 

With a blend of good user interface and the Zoho CRM SDK, you can create custom mobile solutions in no time. This particular project, although very minimal, took me a weekend (around ~8-10 hours) to code. A fully fleshed out app might take a couple weeks or more depending on the app's requirement. 

If you are interested to know more about creating custom mobile solutions, I'll be available in Zoholics Developers, from Oct 1 - Oct 3, representing Zoho Catalyst, would love to catch up with you to know more about what you are working on.

Source Code - https://zdrive.li/RYiswO


    Access your files securely from anywhere











                            Zoho Developer Community





                                                  • Desk Community Learning Series


                                                  • Digest


                                                  • Functions


                                                  • Meetups


                                                  • Kbase


                                                  • Resources


                                                  • Glossary


                                                  • Desk Marketplace


                                                  • MVP Corner


                                                  • Word of the Day


                                                  • Ask the Experts





                                                            Manage your brands on social media



                                                                  Zoho TeamInbox Resources



                                                                      Zoho CRM Plus Resources

                                                                        Zoho Books Resources


                                                                          Zoho Subscriptions Resources

                                                                            Zoho Projects Resources


                                                                              Zoho Sprints Resources


                                                                                Qntrl Resources


                                                                                  Zoho Creator Resources



                                                                                      Zoho CRM Resources

                                                                                      • CRM Community Learning Series

                                                                                        CRM Community Learning Series


                                                                                      • Kaizen

                                                                                        Kaizen

                                                                                      • Functions

                                                                                        Functions

                                                                                      • Meetups

                                                                                        Meetups

                                                                                      • Kbase

                                                                                        Kbase

                                                                                      • Resources

                                                                                        Resources

                                                                                      • Digest

                                                                                        Digest

                                                                                      • CRM Marketplace

                                                                                        CRM Marketplace

                                                                                      • MVP Corner

                                                                                        MVP Corner







                                                                                          Design. Discuss. Deliver.

                                                                                          Create visually engaging stories with Zoho Show.

                                                                                          Get Started Now


                                                                                            Zoho Show Resources


                                                                                              Zoho Writer Writer

                                                                                              Get Started. Write Away!

                                                                                              Writer is a powerful online word processor, designed for collaborative work.

                                                                                                Zoho CRM コンテンツ




                                                                                                  Nederlandse Hulpbronnen


                                                                                                      ご検討中の方




                                                                                                            • Recent Topics

                                                                                                            • Calls where the local audio is shared, have echo

                                                                                                              When another user is sharing their screen with audio, I get echo from my own voice. We tested this with multiple users, with different audio setups, and there's no obvious way to fix it. Is this a bug you could look into, or are we missing something?
                                                                                                            • Update application by uploading an updated DS file

                                                                                                              Is it possible? I have been working with AI on my desktop improving my application, and I have to keep copy pasting stuff... Would it be possible to import the DS file on top of an existing application to update the app accordingly?
                                                                                                            • Markdown support, code cells...

                                                                                                              Hi Zoho I'd like to vote for a feature that markdown is supported with: Headings Code highlighting Quoteblocks ... Furthermore a inline card(like inline sketch card) for special text like Code would be great. And just to add my vote as well for "Tags"!
                                                                                                            • Minimise chat when user navigates to new page

                                                                                                              When the user is in an active chat (chatbot) and is provide with an internal link, when they click the link to go to the internal page the chat opens again. This is not a good user experience. They have been sent the link to read what is on the page.
                                                                                                            • Zoho Projects app update: Voice notes for Tasks and Bugs module

                                                                                                              Hello everyone! In the latest version(v3.9.37) of the Zoho Projects Android app update, we have introduced voice notes for the Tasks and Bugs module. The voice notes can be added as an attachment or can be transcribed into text. Recording and attaching
                                                                                                            • zurl URL shortener Not working in Zoho social

                                                                                                              zurl URL shortener Not working in while creating a post in Zoho social
                                                                                                            • In the Zoho CRM Module I have TRN Field I should contain 15 digit Number , If it Contain less than 15 digit Then show Alert message on save of the button , If it not contain any number not want to sh

                                                                                                              Hi In the Zoho CRM Module I have TRN Field I should contain 15 digit Number , If it Contain less than 15 digit Then show Alert message on save of the button , If it not contain any number not want to show alert. How We can achive in Zoho CRm Using custom
                                                                                                            • Zoho Bookings know-how: A hands-on workshop series

                                                                                                              Hello! We’re conducting a hands-on workshop series to help simplify appointment scheduling for your business with Zoho Bookings. We’ll be covering various functionalities and showing how you can leverage them for your business across five different sessions.
                                                                                                            • Custom report

                                                                                                              Hello Everyone I hope everything is fine. I've tried to To change the layout of the reports, especially the summary page report, and I want to divide summary of each section in the survey but I can't For example: I have a survey containing five different
                                                                                                            • Zoho Journey - ZOHO MARKETING AUTOMATION

                                                                                                              I’ve encountered an issue while working with a journey in Zoho Marketing Automation. After creating the journey, I wanted to edit the "Match Criteria" settings. Unfortunately: The criteria section appears to be locked and not editable. I’m also unable
                                                                                                            • Custom Fields in PDF outputs

                                                                                                              I created a couple of custom fields. e.g Country of Origin and HS Tariff Code. I need these to appear on a clone of a sales order PDF template but on on the standard PDF template. When I select "appear on PDFs' it appears on both but when I don't select
                                                                                                            • How to create a Service Agreement with Quarterly Estimate

                                                                                                              Hello, I'm not sure if this has been asked before so please don't get mad at me for asking. We're an NDIS provider in Australia so we need to draft a Service Agreement for our client. With the recent changes in the NDIS we're now required to also include
                                                                                                            • Change Currency symbol

                                                                                                              I would like to change the way our currency displays when printed on quotes, invoices and purchase orders. Currently, we have Australian Dollars AUD as our Home Currency. The only two symbol choices available for this currency are "AU $" or "AUD". I would
                                                                                                            • Zoho Social - Post Footer Templates

                                                                                                              As a content creator I often want to include some information at the end of most posts. It would be great if there was an option to add pre-written footers, similar to the Hashtag Groups at the end of posts. For example, if there is an offer I'm running
                                                                                                            • Allow to pick color for project groups in Zoho Projects

                                                                                                              Hi Zoho Team, It would be really helpful if users could assign colors to project groups. This would make it easier to visually distinguish groups, improve navigation, and give a clearer overview when managing multiple projects. Thanks for considering
                                                                                                            • Zoho Books - Quotes to Sales Order Automation

                                                                                                              Hi Books team, In the Quote settings there is an option to convert a Quote to an Invoice upon acceptance, but there is not feature to convert a Quote to a Sales Order (see screenshot below) For users selling products through Zoho Inventory, the workflow
                                                                                                            • Can't find imported leads

                                                                                                              Hi There I have imported leads into the CRM via a .xls document, and the import is showing up as having been successful, however - when I try and locate the leads in the CRM system, I cannot find them.  1. There are no filters applied  2. They are not
                                                                                                            • Custom Button Disappearing in mobile view | Zoho CRM Canvas

                                                                                                              I'm working in Zoho CRM Canvas to create a custom view for our sales team. One of the features I'm adding is a custom button that opens the leads address in another tab. I've had no issue with this in the desktop view, but in the mobile view the button
                                                                                                            • The connected workflow is a great idea just needs Projects Integrations

                                                                                                              I just discovered the connected workflows in CRM and its a Great Idea i wish it was integrated with Zoho Projects I will explain our use case I am already trying to do something like connected workflow with zoho flow Our requirement was to Create a Task
                                                                                                            • Zoho Projects MCP Feedback

                                                                                                              I've started using the MCP connector with Zoho Projects, and the features that exist really do work quite well - I feel this is going to be a major update to the Zoho Ecosystem. In projects a major missing feature is the ability to manage, (especially
                                                                                                            • email template

                                                                                                              How do I create and save an email template
                                                                                                            • Enhancements in Portal User Group creation flow

                                                                                                              Hello everyone, Before introducing new Portal features, here are some changes to the UI of Portals page to improve the user experience. Some tabs and options have been repositioned so that users can better access the functionalities of the feature. From
                                                                                                            • How do I filter contacts by account parameters?

                                                                                                              Need to filter a contact view according to account parameter, eg account type. Without this filter users are overwhelmed with irrelevant contacts. Workaround is to create a custom 'Contact Type' field but this unbearable duplicity as the information already
                                                                                                            • Can I add Conditional merge tags on my Templates?

                                                                                                              Hi I was wondering if I can use Conditional Mail Merge tags inside my Email templates/Quotes etc within the CRM? In spanish and in our business we use gender and academic degree salutations , ie: Dr., Dra., Sr., Srta., so the beginning of an email / letter
                                                                                                            • email moderation issue when email is sent in the name of a mail group

                                                                                                              Symptom: an email that is sent by a mail group moderator in the name of a moderated mail group is held back for approval. Reproduction: Create a moderated mail group with members and moderators. Allow that mails can be sent in the name of the group (extended settings). Send an email to the group as a group moderator, but in the name of the group. This mail is held back for moderation which is unexpected. Expected: A mail sent by group moderator to a moderated group are not held back for moderation
                                                                                                            • blank page after login

                                                                                                              blank page after logging into my email account Thanks you
                                                                                                            • Always display images from this sender – Is this feature available?

                                                                                                              In Zoho mail, I had my "Load external images" setting set to "Ask me", and that's fine. That's the setting I prefer. What's not fine though is I always need to tick "Display now" for each email I get, regardless if I've done that multiple times from several
                                                                                                            • Function #9: Copy attachments of Sales Order to Purchase Order on conversion

                                                                                                              This week, we have written a custom function that automatically copies the attachments uploaded for a sales order to the corresponding purchase order after you convert it. Here's how to configure it in your Zoho Books organization. Custom Function: Hit
                                                                                                            • Free webinar: Security that works: Building resilience for the AI-powered workforce

                                                                                                              Hello there, Did you know that more than 51% of organizations worldwide have experienced one or more security breaches, each costing over $1 million in losses or incident response? In today’s threat landscape, simply playing defense is no longer enough.
                                                                                                            • Zoho Notebook Sync problem

                                                                                                              I'm facing a problem with syncing of notebook on android app. It's not syncing. Sometimes it syncs after a day or two.  I created some notes on web notebook but it's not syncing on mobile app. Please help!!!!
                                                                                                            • Cant Save Gauge on Creator Page

                                                                                                              How to Save Gauge on Creator Page see movie https://vimeo.com/1116410860?share=copy#t=0
                                                                                                            • Apply Advance option not shown in report

                                                                                                              We are facing an issue in Zoho Expenses. While approving an Expense Report, the "Apply Advance" option is not appearing under the three dots (More Options). Details: Module: Expense Reports Issue: "Apply Advance" option not visible Status of Report: Awaiting
                                                                                                            • Auto Capitalize First Letter of Words

                                                                                                              Hi I am completely new to ZOHO and am trying to build a database. How can i make it when a address is entered into a form field like this: main st it automatically changes is to show: Main St Thank You
                                                                                                            • Follow-up emails via Workflow Automation not staying in the same thread

                                                                                                              Dear Zoho Support Team, I am currently using Workflow Automation in Zoho Campaigns to send follow-up emails. In my test case, I noticed the following behavior: All emails in the automation have the same subject line. If the follow-up email is sent within
                                                                                                            • Client Script refuses to set an initial value in Subform field

                                                                                                              I tried a very simple, 1 line client script to set a default value in a custom subform field when the "Add Row" button is clicked and the user is entering data. It does not work - can someone tell me why? ZDK documentation suggests this should be doable.
                                                                                                            • Help Center IFrame Issue

                                                                                                              I have had a working Help Center on my website using an iframe for a while. But now for some reason the sign in page gets a refused to connect error. Can someone please help. If I go to the url manually it works correclty
                                                                                                            • Comment Templates

                                                                                                              Is it possible to add a template option for comments? We have some agents in the process who's responses require a pre-formatted layout. It would be incredibly handy to have a template for them where they can insert the template and then add their responses
                                                                                                            • [ZohoDesk] Improve Status View with a new editeble kanban view

                                                                                                              A kanban view with more information about the ticket and the contact who created the ticket would be valueble. I would like to edit the fields with the ones i like to see at one glance. Like in CRM where you can edit the canvas view, i would like to edit
                                                                                                            • Adding Markdown text using Zoho Desk API into the Knowledge Base

                                                                                                              Hi Zoho Community members, We currently maintain the documentation of out company in its website. This documentation is written in markdown text format and we would like to add it in Zoho Knowledge Base. Do you know if there is REST API functionality
                                                                                                            • An Exclusive Session for Zoho Desk Users: AI in Zoho Desk

                                                                                                              A Zoho Community Learning Initiative Hello everyone! This is an announcement for Zoho Desk users and anyone exploring Zoho Desk. With every nook and corner buzzing, "AI's here, AI's there," it's the right time for us to take a closer look at how the AI
                                                                                                            • Next Page