Using Cliq forms to add a task in Projects

Using Cliq forms to add a task in Projects

Forms in Cliq are platform components that can take in multiple user inputs in a single go, standardize the way work gets kicked off in an organization and helps you automate your everyday workflow. 
Let's understand forms better by considering the following scenario.

Scenario
 
Assume, your team is now working on a new project and your lead decides to assign the tasks to the concerned person in Zoho Projects. As a first step, let's connect Zoho Projects with Cliq and add tasks right from the Cliq window using forms. To do this,
 
1. Connect Cliq with Zoho Projects by giving your connection a name followed by specifying the scopes. 
2.  The scopes required to add a task in Zoho Projects are,
  •  ZohoProjects.portals.READ
  •  ZohoProjects.projects.READ
  •  ZohoProjects.users.READ
  • ZohoProjects.tasks.CREATE
3. The required method is POST and the URL to connect Zoho Projects with Cliq is 
https://projectsapi.zoho.com/restapi/portal/[PORTALID]/projects/[PROJECTID]/tasks/

4. Once after you initiate the connection use the deluge code generated, in your script.

5. To know more about the scopes available in Zoho Projects head on over here.
 
The bots menu handler and form submit handler code to add a task in Zoho Projects is attached here. Try copying the code in your deluge editor and execute it.

Bot menu handler code
  1. response = Map();
  2. inputs = list();
  3. inputs.add({"type":"text","name":"taskname","label":"Task Name","placeholder":"Specify the task name","mandatory":true,"value":"Enter the task name here"});
  4. inputs.add({"type":"textarea","name":"desc","label":"Add Description","placeholder":"A small description of the task","mandatory":false,"value":"A small description about the task"});
  5. inputs.add({"type":"date","name":"startdateinfo","label":"Start Date","placeholder":"01-01-2020","mandatory":false});
  6. inputs.add({"type":"date","name":"duedateinfo","label":"Due Date","placeholder":"01-01-2020","mandatory":false});
  7. inputs.add({"type":"select","name":"prior","label":"Priority","placeholder":"None","mandatory":false,"value":"None","options":[{"label":"None","value":"none"},{"label":"High","value":"high"},{"label":"Medium","value":"medium"},{"label":"Low","value":"low"}]});
  8. por = invokeurl
  9. [
  10. url :"https://projectsapi.zoho.com/restapi/portals/"
  11. type :GET
  12. connection:"Your connection name"
  13. ];
  14. portals = por.get("portals");
  15. user_listing=Collection();
  16. for each portal in portals
  17. {
  18. id = portal.get("id_string");
  19. pro = invokeurl
  20. [
  21. url :"https://projectsapi.zoho.com/restapi/portal/" + id + "/projects/"
  22. type :GET
  23. connection:"Your connection name"
  24. ];
  25. projects = pro.get("projects");
  26. for each project in projects
  27. {
  28. pid = project.get("id_string");
  29. users = invokeurl
  30. [
  31. url :"https://projectsapi.zoho.com/restapi/portal/"+id+"/projects/"+pid+"/users/"
  32. type : GET
  33. connection:"Your connection name"
  34. ];
  35. for each user in users.get("users")
  36. {
  37. user_id=user.get("id");
  38. user_name=user.get("name");
  39. user_listing.insert({"label":user_name,"value":user_id});
  40. }
  41. }
  42. }
  43. inputs.add({"type":"select","max_selections":"2","multiple":true,"name":"assignee","label":"Owner","placeholder":"Add a user","mandatory":true,"value":"Olivia","options":user_listing});
  44. form = {"type":"form","title":"New Task","hint":"Add a new task in Projects","name":"addtasks","version":1,"button_label":"Add","action":{"type":"invoke.function","name":"tasks"},"inputs":inputs};
  45. return form;
 Form submit handler code
  1. response = Map();
  2. param = Map();
  3. formValues = form.get("values");
  4. priority = formValues.get("priority");
  5. param.put("name",formValues.get("taskname"));
  6. param.put("description",formValues.get("desc"));
  7. param.put("start_date",formValues.get("startdateinfo").toString("MM-dd-yyyy"));
  8. param.put("end_date",formValues.get("duedateinfo").toString("MM-dd-yyyy"));
  9. param.put("priority",formValues.get("prior").get("label"));
  10. param.put("person_responsible",(formValues.get("assignee").get("0").get("value")).toString());
  11. por = invokeurl
  12. [
  13. url :"https://projectsapi.zoho.com/restapi/portals/"
  14. type :GET
  15. connection:"Your connection name"
  16. ];
  17. portals = por.get("portals");
  18. for each portal in portals
  19. {
  20. id = portal.get("id_string");
  21. pro = invokeurl
  22. [
  23. url :"https://projectsapi.zoho.com/restapi/portal/" + id + "/projects/"
  24. type :GET
  25. connection:"Your connection name"
  26. ];
  27. user_listing_map = Map();
  28. projects = pro.get("projects");
  29. for each project in projects
  30. {
  31. pid = project.get("id_string");
  32. tasks = invokeurl
  33. [
  34. url :"https://projectsapi.zoho.com/restapi/portal/" + id + "/projects/" + pid + "/tasks/"
  35. type :POST
  36. parameters:param
  37. connection:"Your connection name"
  38. ];
  39. }
  40. }
  41. return {"text":"Hurray! Successfully added a task in Projects :happy:"};




With a multitude of possibilities available with forms, Zoho Cliq let's you build dynamic forms using a form builder. A form builder in Cliq is a form building platform for non coders to build interactive forms easily.
Here's a small video on building a form using the form builder.



There you go! A small example to understand how forms can come in handy to get your works done on the go. In case of any doubts or queries, do comment below. We'd be happy to assist you.

Regards,
Divya P
Zoho Cliq





    • Sticky Posts

    • Customer payment alerts in Zoho Cliq

      For businesses that depend on cash flow, payment updates are essential for operational decision-making and go beyond simple accounting entries. The sales team needs to be notified when invoices are cleared so that upcoming orders can be released. In contrast,
    • Automating Employee Birthday Notifications in Zoho Cliq

      Have you ever missed a birthday and felt like the office Grinch? Fear not, the Cliq Developer Platform has got your back! With Zoho Cliq's Schedulers, you can be the office party-cipant who never forgets a single cake, balloon, or awkward rendition of
    • Accelerate Github code reviews with Zoho Cliq Platform's link handlers

      Code reviews are critical, and they can get buried in conversations or lost when using multiple tools. With the Cliq Platform's link handlers, let's transform shared Github pull request links into interactive, real-time code reviews on channels. Share
    • App Spotlight : PagerDuty for Zoho Cliq

      App Spotlight brings you hand-picked apps to enhance the power of your Zoho apps and tools. Visit the Zoho Marketplace to explore all of our apps, integrations, and extensions. In today's fast-paced world, seizing every moment is essential for operational
    • Automate your status with Cliq Schedulers

      Imagine enjoying your favorite homemade meal during a peaceful lunch break, when suddenly there's a PING! A notification pops up and ruins your moment of zen. Even worse, you might be in a vital product development sprint, only to be derailed by a "quick