We’re building a Custom UI app (@pipedrive/app-extensions-sdk@0.13.1) with a floating window and trying to understand its initialization lifecycle. Hoping someone can confirm whether this is a bug or the intended behavior.
The issue
The floating window iframe loads on every page (hidden until shown). While it’s hidden and hasn’t been opened, the App Extensions SDK’s initialize() method never resolves. Pipedrive passes a valid id and new AppExtensionsSDK() constructs fine, but the promise it returns never settles — it neither resolves nor rejects, even well past Pipedrive’s documented 10-second initialization budget. We confirmed this with a minimal page that just reads id from the URL query params, passes it to the SDK constructor, and calls initialize().
It only initializes after the user opens the window from the apps dock. At that point Pipedrive loads a fresh iframe (a different id, plus extra URL params like userId, companyId, theme), initialize() resolves in a few milliseconds, and from then on SET_NOTIFICATION (the dock badge) and SHOW_FLOATING_WINDOW work as expected.
Why it blocks us
Two things we want to do both require the floating window’s SDK to be initialized before the user opens it, which never happens:
- Set the dock notification badge on page load (
SET_NOTIFICATION). - Show the floating window programmatically (e.g. on an incoming call) without the user opening it first.
Questions
- Is a loaded-but-hidden floating window supposed to be able to
initialize()? Is the never-resolving handshake a bug, or is initialization intentionally deferred until the window is first opened? - If it’s deferred by design, what’s the intended way to set the dock badge on load and to show the window programmatically before the user has opened it manually?
References
- Custom floating window docs: Custom floating window
- App Extensions SDK: GitHub - pipedrive/app-extensions-sdk: SDK for Pipedrive app extensions · GitHub
- Floating window example app: example-apps/apps/custom-ui-floating-window-demo at master · pipedrive/example-apps · GitHub
- Caller integration tutorial (step 9): Pipedrive API Tutorials: ➤ Build Custom Floating Window Caller Apps