Modules and How Things Work

Freshworks products are built around modules — functional areas like Tickets, Contacts, or Deals. Each module represents a business entity with its own data model, UI, and workflows.

Build apps for different modulesBuild apps for different modules across products

Understanding Modules and SKUs

Each Freshworks product offers different modules based on the SKU (Stock Keeping Unit) or plan tier:

  • Modules = Functional areas (e.g., Tickets, Contacts, Knowledge Base)
  • SKUs = Product plans (Free, Growth, Pro, Enterprise) that determine which modules are available
  • Your app can target specific modules and work across different SKUs

Common Modules

ProductKey Modules
FreshdeskTickets, Contacts, Companies, Agents
FreshserviceIncidents, Problems, Changes, Assets
FreshsalesLeads, Contacts, Accounts, Deals

View all modules across products →

How Apps Work with Modules

1. Placeholders (Where Your App Shows Up)

Your app displays UI at specific locations called placeholders. Once installed, your app loads within a secure iframe in the Freshworks product interface, where it can interact with product data and display custom functionality.

App Placeholder in FreshdeskExample of an app loaded in a ticket sidebar placeholder

Common placeholders:

  • ticket_sidebar - Shows in ticket detail page
  • contact_sidebar - Shows in contact detail page
  • full_page_app - Standalone page
  • ticket_background - No UI, runs in background
Note

View the code: Configuration Sample App demonstrates various placeholders in action.

2. Access Data

1// Get current ticket data
2client.data.get('ticket').then(function(data) {
3  console.log(data.ticket.subject);
4  console.log(data.ticket.status);
5});

3. React to Events

  • app.activated - App loaded
  • ticket.updated - Ticket changed
  • onTicketCreate - New ticket (serverless)

4. Trigger Actions

  • Show notifications
  • Open modals
  • Navigate pages
  • Call APIs

App Components

my-app/
├── manifest.json      # App blueprint (placeholders, features)
├── index.html         # Frontend UI
├── app.js             # Frontend logic
├── iparams.json       # Installation settings (API keys, etc.)
└── server/            # Serverless functions (optional)
    └── server.js
Note

We'll create your first app in the next section and explore these files hands-on.

Example: Ticket Enrichment App

Flow:

  1. Agent opens ticket → App loads in ticket_sidebar
  2. App reads ticket data via SDK
  3. App calls external API with customer email
  4. App displays enriched data in UI
  5. Agent clicks "Add to Ticket" → App updates ticket

What does this document offer?App development process

Explore detailed app development documentation →