Use data method

Data method is an interface that the developer platform provides to enable your app to retrieve product data (in the form of JSON payloads).

When an app is initialized successfully, the parent app (Freshworks product) passes a client reference to your app. Your app can use this reference and the developer platform’s data method to retrieve the different objects on the Freshworks product UI, as payloads.

To enable your app to retrieve product data, in the app.js file,

  1. Subscribe to the app.initialized event, through an event listener. When the app is initialized, the parent application passes a client reference to the app.
  2. After app initialization, use the data method - client.data.get(<objectName>) - to retrieve the specified object (<objectName>) from the product UI.

As part of the app logic, your app can process the retrieved payload to derive meaningful results.

This section,

  • Lists all the objects that can be retrieved by using the data method.
  • Describes all the attributes of the retrieved object.

Data objects accessible from all pages

These objects are available in all pages of the product UI. Irrespective of the page on which the app is deployed, when you use the data method -client.data.get(<objectName>)- and retrieve these objects, the corresponding payload is retrieved.

An app can retrieve the following objects irrespective of where the app is deployed:

currentHostFreshdeskFreshdesk Omni

A global app, with module-specific app logic, can be deployed on various Freshworks products. currentHost refers to the Freshworks product on which the app is currently running. Based on the currentHost, from the back-end, we retrieve the modules that the app user working on the currentHost has subscribed to. Based on the subscribed modules, we can retrieve the product-specific urls that the app built for the modules can use, to access the product resources. The organization domain associated with the account can also be retrieved, which can be pre-populated during the app installation using utils.set(); method in the onFormLoad() callback function definition. For information on the onFormLoad() function, see Make your installation page dynamic.

For more information on currentHost, see Global app concepts.

Use the sample code shown on the right pane > Sample code tab, to retrieve the currentHost object that contains information on,

  • All modules that the app user using the currentHost has access to and applicable to the app.
  • All product names and the corresponding account urls through which the app built for the subscribed modules can access product resources.

Attributes of the currentHost object

  • subscribed_modulesarray of strings

    All modules that the app user has subscribed to and present in the app manifest.

  • endpoint_urlsobject

    Product name and account url (domain name) to access product resources, specified as a key (product name) - value (account URL) pair.

    You can use the domain name to construct api calls that can access product resources.

  • org_domainstring

    Organization domain is the domain value in the organization URL. This organization domain is created when you first sign up for a Freshworks product and is tied to all your accounts across different Freshworks products. You can use this value to pre-populate the organization domain value during app installation.

  • product_typesobject

    Information pertaining to the product where the app is currently running.

    • freshdeskstring

      Name of the variant of the product.

      Possible values:

      • DEFAULT: For Freshdesk product
      • UNIFIED_OMNI: For Freshdesk Omni product

loggedInUserFreshdeskFreshdesk Omni

Use the sample code shown on the right pane > Sample code tab, to retrieve information on the agent logged into the Freshworks product UI.

Attributes of the loggedInUser object

  • idinteger

    Identifier of the agent, auto-generated when the agent’s information is configured in the system.

  • created_atstring

    Timestamp of when the agent’s record was created in the Freshworks product system, specified in the UTC format.

  • updated_atstring

    Timestamp of when the agent’s record is last updated in the Freshworks product system, specified in the UTC format.

  • availableboolean

    Specifies whether the agent is available for ticket assignment.

    Possible values: true, false

  • available_sincestring

    Timestamp of since when the agent has been available for ticket assignment.

  • abilitiesarray of strings

    List of the access privileges granted to the agent, specified as an array. For example, create and edit topics, export tickets, and so on.

  • contactobject

    Details of the contact record configured for the agent in the Freshworks product system.

    • idstring

      Identifier of the contact object, auto-generated when a contact record is created in the system.

    • namestring

      Full name of the contact.

    • emailstring

      Email address of the contact specified when the contact information is created in the Freshworks product system.

    • phonestring

      Official phone number of the contact.

    • mobilestring

      Mobile phone number of the contact.

    • languagestring

      Primary language of the contact, in the ISO-639 code.

    • activeboolean

      Specifies whether the contact is active in the Freshworks product system.

      Possible values: true, false

    • avatarobject

      Details of the image used as the avatar in the company profile.

      • idinteger

        Identifier of the avatar object, auto-generated when an avatar is created in the system.

      • created_atstring

        Timestamp of when the avatar was created in the system, specified in the UTC format.

      • updated_atstring

        Timestamp of when the avatar was last updated in the Freshworks product system, specified in the UTC format.

      • namestring

        Name of the avatar, auto-generated when an avatar is created in the system.

      • content_typestring

        Format of the image uploaded as avatar. For example, image/png.

      • sizestring

        Size of the image uploaded as avatar.

      • attachment_urlstring

        Format of the image uploaded as avatar. For example, image/png.

      • thumb_urlstring

        Link to the location from where the thumbnail of the avatar can be retrieved.

    • job_titlestring

      Designation of the contact in the company to which the contact belongs.

    • time_zonestring

      Time zone to which the contact belongs, in an easily consumable (RAILS timezone.name) format.

  • group_idsarray of integers

    Identifiers of the groups to which the agent is associated, specified as an array.

  • occasionalboolean

    Specifies whether the agent is an occasional agent or a full-time agent .

    Possible values: true, false

  • role_idsarray of integers

    Identifiers of the roles associated with the agent, which determine the access privileges of the agent.

  • signaturestring

    HTML format of the personalized message block appended to the emails/replies that the agent sends.

  • ticket_scopeinteger

    Permission granted to the agent to access the tickets in the Freshworks product system.

    Possible values:

    1: The agent can access all tickets created in the Freshworks product system.

    2: The agent can access tickets assigned to the agent or to the group(s) to which the agent belongs.

    3: The agent can only access tickets assigned to the agent.

New email page

An app deployed on the New email page can use the client.data.get(<objectName>) data method and retrieve the following objects:

email_config FreshdeskFreshdesk Omni

Use the sample code shown on the right pane > Sample code tab, to retrieve a list of email configurations for a user.

Note:You can retrieve up to 100 email-configs using the data method.

Attributes of the email_config object

  • idinteger

    Identifier of the customized email address, which is configured to automatically create a new ticket from the email received to the support email.

  • replyEmailstring

    Email address used when replying to an email.

  • namestring

    Full name of the contact.

  • toEmailstring

    Forwarding email address of the email_config object.

  • primaryRoleboolean

    Specifies whether the email in the email_config object is marked as primary in Admin -> Email Settings.

    Possible values: true, false

  • groupIdinteger

    Identifier the group to which the ticket is associated.

  • productIdinteger

    Identifier of the product to which the ticket is associated, if an organization has configured multiple products.

<field-name>_options FreshdeskFreshdesk Omni

Use the sample code shown on the right pane to retrieve all configured options (field values) of the following drop-down fields.

For both custom and default drop-down fields, you can retrieve the options by adding the suffix _options to the field name and using it as the objectName in the client.data.get(<objectName>) data method. This returns an array of the field values.

Note:You can retrieve the field values available on the New email page only.

Field nameSyntax
Statusclient.data.get("status_options")
Priorityclient.data.get("priority_options")
Typeclient.data.get("ticket_type_options")
Custom Fieldclient.data.get("customfield_options")