Skip to main content
Question

Correct way to use the Storage Method (JavasScript SDK)

  • January 28, 2026
  • 5 replies
  • 35 views

Hi everyone,
I’d like to ask for feedback and ideas on whether we’re using the SDK Storage method correctly.

Our custom app consists of a form-based flow:

  • Form A is used to set up boards and item columns using monday.com’s GraphQL API.

  • After a successful submission of Form A, Form B receives the generated board and column IDs from the GraphQL mutations. These IDs are then used in another mutation to create new items in the board (like a record table).

App flow:

  1. Fill out Form A and click Submit

  2. Run GraphQL mutations to create boards and columns

  3. Retrieve the generated board and column IDs

  4. Store the IDs in monday Storage

  5. Redirect to Form B

  6. Form B retrieves the stored IDs

For step #4, we are currently using monday-sdk-js
(https://developer.monday.com/apps/docs/introduction-to-the-sdk)
to store the generated IDs. This is done on the client side only, since there was an announcement that server-side usage will be deprecated soon.

However, we may soon introduce an automation that uses webhooks, where the webhook triggers GraphQL scripts. In this case, we plan to use the @mondaycom/apps-sdk
(https://developer.monday.com/apps/docs/monday-code-javascript-sdk).
The issue is that we’re unable to retrieve the values stored via monday-sdk-js on the client side when using the new Storage('<ACCESS_TOKEN>') approach on the server side.

With that in mind, I have a few questions:

  1. Would it be better to use @mondaycom/apps-sdk for storage in our use case (especially for step #4)?
    If so, would it be better to move steps #4 and #6 to the server side as well?
    My thinking is that this would be a better approach given our potential future use case involving automations and webhooks, but I’d appreciate your thoughts on this.

  2. Based on this community post
    https://community.monday.com/t/storage-not-accessible-from-view/72941
    Dipro mentioned that it’s possible to fetch storage values created with monday-sdk-js on the client side from the server side using @mondaycom/apps-sdk. However, this doesn’t seem to work in our case. We are using the same token as the access token parameter for the Storage method.

    • Is this approach correct, or are we missing something?

    • If it is correct, is it still possible to access storage values across client-side and server-side contexts using different SDKs?

For client side: We are using ReactJS with monday-sdk-js v0.5.6

For server side: ExpressJS with @mondaycom/apps-sdk v3.2.1

Any feedback or suggestions would be greatly appreciated.
Thank you very much!

5 replies

  • New Participant
  • January 28, 2026

Hey, quick thought: if those board/column IDs are only needed for the immediate redirect from Form A to Form B (same user, same session), you might not need monday storage at all. Passing them via URL params or keeping them in React state would be simpler. But if this config needs to stick around for your automations and webhooks later, then storage makes sense.

For your first question about moving to @mondaycom/apps-sdk and handling storage server side: yes, I'd recommend it. Your automations will have access to shortLivedToken which works with the apps-sdk Storage, and having everything go through one consistent pattern on the server avoids cross-SDK problems.

For your second question: yes, cross-SDK access is possible, but only when you're using global storage on the client and reading with shared: true on the server.

If it's still not working, a few things to check: make sure you're using monday.storage.setItem() on the client (not monday.storage.instance.setItem() which is scoped to the view and invisible to the server). Also the token you pass to new Storage() needs to be an OAuth token or shortLivedToken, not the sessionToken from the view since that's only for authenticating requests to your own backend.


  • Author
  • New Participant
  • January 28, 2026

Hey there. Thank you so much for the response. 

We are using the global storage in the client side, (monday.storage.setItem(), monday.storage.getItem()). Regarding OAuth. The current access flow of our app is the users are within Monday CRM only https://monday.com/crm. And it will not be access outside monday. Do we still need to apply OAuth flow here?


  • New Participant
  • January 28, 2026

Short answer: probably not. If you're just doing the Form A → Form B flow within views, you can stick with client-side global storage and skip the server entirely for that part. No OAuth needed. For your automations and webhooks down the line, Monday sends you a shortLivedToken in the payload when it calls your endpoint. That works fine with new Storage(shortLivedToken), so still no OAuth. The only time you'd need OAuth is if your Express backend needs to hit storage during a request that came from your view. The sessionToken from the view only authenticates requests to your backend, it doesn't work as a token for new Storage(). So if that's what you're trying to do, OAuth is how you'd get a usable token. Let me know if that helps!


  • Author
  • New Participant
  • January 28, 2026

Thanks ​@Hidai for your feedback. Really appreciated it. This is gives us idea on how to proceed.


  • New Participant
  • January 28, 2026

Great!