Omnify Freshsales app to support Freshsales Suite (formerly Freshworks CRM)

Freshworks is coming up with yet another offering which is upgrade of existing product :freshsales: Freshsales. We are calling is Freshworks CRM which is upgrade to Freshsales and combines the power of Freshchat, Freshcaller and Freshmarketer. We hope some of this information could be valuable for developer community when shared bit early.

Who is this wiki article for?
Freshsales app developers who have their apps published on the Marketplace.

What does this mean for a Freshworks Developer?

  • Freshworks Developers now have a new product for which they can build apps for. It’s Freshworks CRM. We recommend you to see it as a separate product.
  • Freshworks CRM would have it’s own REST API documentation. The App SDK or FDK for Freshworks CRM would same.
  • Freshsales app developers may find their use cases compatible with Freshworks CRM. In that case it is recommended to try out building an Omni app instead re-building app from scratch for Freshworks CRM.

Why and what are Omni apps ?

  • Today a if a Freshworks app developer decides to build an app, he/she is expected to build the app for each product separately.
  • But there can be possibility, use case that developer is trying to solve might be similar for 2 or more products. In that case developer trying to build 2 or more apps can be redundant.
  • To make an app support multiple products possible, developer can choose to build an Omni app.
  • As of current phase, Omni app capabilities are supported only for Freshsales and Freshworks CRM. The illustration shown below is an example only.

Tell me more about Omni Apps?

  1. App during development authored once, is expected to be installed by the user in Omni supported products. As of now, either in Freshsales or Freshworks CRM.
  2. This comes with it’s own flexibilities and boundaries in Installation/Configuration page, Data Method and Serverless Events.
  3. Installation Page of both kinds, iparams.json + iparams and iparams.html + iparams.js will have access to a productContext object through which app will understand the product in which it is installed in at runtime. For example, if you had to make API calls, you can construct the right URL endpoints.
  4. Developer can also control the UI elements of Installation pages by DOM manipulation in iparams.html and special functions exposed in the case of iparams.json
  5. Data Method will give developer same productContext object where you can access product name and product URL.
  6. All serverless event payloads has same productContext as a attribute. You may also now flexibly declare events in manifest.json and keep your server.js file clutter free. Make sure to use platform version 2.1
  7. With such access to productContext to the app in runtime in Installation page, Frontend and Backend, developer no longer need to ask user to collect domain. Strongly recommended to developer to leverage product context object.
  8. All the above features are also available in FDK to run the app locally during your app development.

What is the FDK version required to build Omni App?

CLI version: 6.6.0 or greater

How do I submit my Omni App?

  1. The App submission portal for Omni apps will be live by September 2nd week of 2020.
  2. You will need to multiselect Freshsales and Freshworks CRM and submit the app.

Additional Notes

  • Full page and CTI placeholders in Freshworks CRM are not yet supported in local development.
  • When deploying the app via App submission portal on Freshworks CRM will require manifest.json to remove freshsales product property as one of the products.
  • Freshworks CRM by default shows the inbuilt phone app and an CTI app will take precedence at the placeholder only after the account admin enables the app in the app management page of the Freshworks CRM. At the same time, please give it up to 5 - 10 min and refresh the page to see it appear at the CTI placeholder.
  • Once you see an app to be working as per your expectations, you will be required to add another version of the same app as an omni app.

Code Samples :toolbox:

If you would like to see some code samples, please see Omni app samples in the Github Repository.