Server-Side Code in Monday Apps – Upload Fails

Hi everyone,

I’m currently building a Monday App and trying to use server-side nodejs functions to:

  • Make REST calls to an external API from the frontend

  • Receive webhooks from that API

  • Upload a signed file back into Monday

Ideally, I want to host these functions directly using the serverless functions feature provided by the Monday Apps Framework.

The Problem

I’m already running into issues when trying to upload even a minimal function. For example, with this simple function:

module.exports = async function (req, res) {
  res.json({ message: "Hello from server" });
};

and the following mapps.config.js configuration:

module.exports = {
  functions: [
    {
      name: "testFunction",
      entry: "./functions/testFunction.js",
      runtime: "nodejs20.x",
      events: [
        {
          eventType: "http",
          method: "GET",
          path: "/api/test"
        }
      ]
    }
  ]
};

I consistently get this error when deploying:

✖ There was an error deploying the application.

Unfortunately, I can’t find any working examples or detailed error messages to help me debug this.

My Questions

  1. Is there a working example of a minimal server-side function for Monday Apps?

  2. Does the function need to meet specific requirements (e.g. headers, response format)?

  3. Is an index.js file required for server-side functions?

  4. Are there known limitations or issues with deploying via mapps code:push?

  5. Is it even possible to receive webhooks via http events and then upload files to Monday?

  6. Can the entire flow — REST communication with an external API and webhook handling — be fully hosted within Monday?

I’d really appreciate any tips, examples, or insights to help get this working.

Thanks in advance!
Jan

Here are some short answers to my questions, in case anyone needs them:

  1. Serverless is not necessary for using the Monday code. For a working solution, the server must run on port 8080.No, but JTW should be used - is not required
  2. No
  3. The package.json file defines which file is executed.
  4. No
  5. yes
  6. yes