Hi @Brett_Hazen,
Why does this happen?
1. Platform v3.0 doesn’t trigger backend events locally
When you visit your Freshdesk account with ?dev=true, you’re only loading the frontend iframe of your app.
However, in your app’s manifest, your logic (e.g. onTicketUpdateHandler) is inside the serverless module, not the frontend.
FDK will not send real platform events to your localhost — only the deployed app’s backend (on Freshworks infrastructure) receives them.
So:
- The browser request
GET http://localhost:10001/iframe/api/confirms your local FDK server is running. - But no event like
onTicketUpdateis sent to localhost.
Hence,console.log()inside server.js won’t fire.
2. Understanding the ?dev=true behavior
?dev=true is meant only for frontend testing (UI placeholders, modals, etc.).
It injects your iframe-based UI locally but doesn’t simulate:
- Serverless functions
- Event triggers
$requestcalls$jobsor$schedules
3. About Manifest
You don’t need "fdk": "9.7.0" inside engines.
The FDK CLI version is managed outside the app — not by the runtime itself.
4. Test vs. Live Apps
Test apps are for testing on the platform, while Live apps are published versions of the same.
Learn more here:
Introducing Test App Versions for Custom Apps
Thanks,
Debjani