Declaring App Manifest

Your app's manifest.json file enables the platform to provide all the necessary features for your app to serve its users effectively.

Let’s update the manifest.json as follows:

{
  "platform-version": "3.0",
  "modules": {
    "common": {
      "requests": {
        "shortenLink": {}
      }
    },
    "support_ticket": {
      "location": {
        "ticket_sidebar": {
          "url": "index.html",
          "icon": "styles/images/icon.svg"
        }
      }
    },
    "support_contact": {
      "location": {
        "contact_sidebar": {
          "url": "index.html",
          "icon": "styles/images/icon.svg"
        }
      }
    },
    "service_ticket": {
      "location": {
        "ticket_sidebar": {
          "url": "index.html",
          "icon": "styles/images/icon.svg"
        }
      }
    }
  },
  "engines": {
    "node": "18.16.1",
    "fdk": "9.1.0"
  }
}
  • "platform-version": Specifies the version of the Freshworks developer platform this app is built for.
  • "modules": Defines the different modules/capabilities of the app. Each key (like "common") is a module name.
    • "common": Defines capabilities that do not change according to modules.
    • "support_ticket", "support_contact", "service_ticket": These define other modules for specific capabilities like support and service tickets.
      • "location": Specifies UI locations to load each module's UI code.
        • "ticket_sidebar": For ticket modules, specifies the sidebar configuration.
          • "url": The HTML page for the sidebar.
          • "icon": The icon image file for the sidebar.
  • "engines": Specifies the required/supported runtimes.
    • "node": The Node.js version.
    • "fdk": The Freshworks Development Kit version.

So in summary, this config defines the modules/capabilities, UI locations, and engines for a Freshworks app. The CLI and runtime uses this to initialize the app and runtime environment.

Note:

Discovering which modules correspond to which products can be a real challenge. But don't worry - we've got you covered! Our comprehensive documentation is always at your fingertips, ready to help you make sense of it all.