Pass Variable from one function to another

New to K6, for benchmarking my http request I am using K6 in my pipeline. Now here is my code I have two section

first am creating an user and second am trying updating the same user

import http from "k6/http";
import { check, sleep, group } from "k6";
import { Trend } from "k6/metrics";

import { LOGIN_URL, BASE_URL } from "../test/support/constants/endpoints.js";
import {
  generateSampleUserDataFinal,
  generateRandomPhoneNumber,
  generateRandomOrganisationContactID,
  generateRandomUserTypeId,
} from "../test/support/data/perf.sampledata.js";


let TC01_CreateNewUser = new Trend("TC01_CreateNewUser");
let TC02_UpdateExistingUser = new Trend("TC02_UpdateExistingUser");

function login() {
  let authResponse = http.post(`${LOGIN_URL}`);
  let authData = authResponse.json().data;
  if (!authData) {
    console.error("Login failed: ", authResponse.body);
  }
  return authData;
}

function generateRandomSleepTimer() {
  let sleepTime = Math.floor(Math.random() * 3 + 1);
  return parseInt(sleepTime);
}


export function createNewUser(
  authToken,
  sleepTime,
  generateSampleUserData
) {
  group("TC01: Create a new User", function () {
    const response = http.post(
      `${BASE_URL}/User`,
      generateSampleUserData,
      {
        headers: {
          Authorization: authToken,
          "Content-Type": "application/json",
        },
        tags: { name: "Create a new User" },
      }
    );
    const responseDuration = response.timings.duration;
    TC01_CreateNewUser.add(responseDuration);
    console.log("Response: ", response.body);
    profileId = JSON.parse(response.body).data;
    const checkResult = check(response, {
      "is status 200": (r) => r.status === 200,
    });
    let responseMessage;
    try {
      responseMessage = response.json();
    } catch (e) {
      console.error("Failed to parse JSON response: ", response.body);
    }
    check(responseMessage, {
      "Success!": (r) => r && r.message === "Success!",
    });
    sleep(sleepTime);
   return  profileId ;
  });
}


 export function updateExistingUser(authToken, sleepTime, profileId) {
   group("TC02: Update an existing User", function () {
	  console.log("Profile ID: ====> : ", profileId);
      const response = http.put(
       `${BASE_URL}/User`,
       {
         UserProfileID: `${profileId}`,
         organisationContactID: `${generateRandomOrganisationContactID()}`,
         name: "Performnace Benchmark Testing",
         UserTypeID: `${generateRandomUserTypeId()}`,
         email: "perftest@test.com",
         phoneNumber: `${generateRandomPhoneNumber()}`
       },
       {
         headers: {
           Authorization: authToken,
           "Content-Type": "application/json",
         },
         tags: { name: "Update an existing User" },
       }
     );
     const responseDuration = response.timings.duration;
     TC02_UpdateExistingUser.add(responseDuration);
     console.log("Response: ", response.body);
     const checkResult = check(response, {
       "is status 200": (r) => r.status === 200,
     });
     let responseMessage;
     try {
       responseMessage = response.json();
     } catch (e) {
       console.error("Failed to parse JSON response: ", response.body);
     }
     check(responseMessage, {
       "Success!": (r) => r && r.message === "Success!",
     });
     sleep(sleepTime);
   });
 }
 
 
 export default function () {
  const authToken = login();
  if (!authToken) {
    console.error("No auth token, exiting test");
    return;
  }
  const sleepTime = generateRandomSleepTimer();
  const UserProfileID = generateRandomUserProfileID();
  let generateSampleUserData = generateSampleUserDataFinal(); //This is function which generate a random payload
  let profileId;

  createNewUser(authToken, sleepTime, generateSampleUserData);
  updateExistingUser(authToken, sleepTime, profileId);
}

I am getting the response

INFO[0001] Response:  {"responseCode":200,"message":"Success!","data":"372"}  source=console
INFO[0002] Response:  {"responseCode":200,"message":"Success!","data":"373"}  source=console
INFO[0003] Response:  {"responseCode":200,"message":"Success!","data":"374"}  source=console


INFO[0003] Profile ID: ====> undefined           source=console

How to fix this issue ?

Able to fix the issue, majorly the issue is with the scope of variable.

import http from "k6/http";
import {
    check,
    sleep,
    group
} from "k6";
import {
    Trend
} from "k6/metrics";

import {
    LOGIN_URL,
    BASE_URL
} from "../test/support/constants/endpoints.js";
import {
    generateSampleUserDataFinal,
    generateRandomPhoneNumber,
    generateRandomOrganisationContactID,
    generateRandomUserTypeId,
} from "../test/support/data/perf.sampledata.js";


let TC01_CreateNewUser = new Trend("TC01_CreateNewUser");
let TC02_UpdateExistingUser = new Trend("TC02_UpdateExistingUser");
let profileId; //This hold the scope global

function login() {
    let authResponse = http.post(`${LOGIN_URL}`);
    let authData = authResponse.json().data;
    if (!authData) {
        console.error("Login failed: ", authResponse.body);
    }
    return authData;
}

function generateRandomSleepTimer() {
    let sleepTime = Math.floor(Math.random() * 3 + 1);
    return parseInt(sleepTime);
}


export function createNewUser(
    authToken,
    sleepTime,
    generateSampleUserData
) {
    group("TC01: Create a new User", function() {
        const response = http.post(
            `${BASE_URL}/User`,
            generateSampleUserData, {
                headers: {
                    Authorization: authToken,
                    "Content-Type": "application/json",
                },
                tags: {
                    name: "Create a new User"
                },
            }
        );
        const responseDuration = response.timings.duration;
        TC01_CreateNewUser.add(responseDuration);
        console.log("Response: ", response.body);
        profileId = JSON.parse(response.body).data; //assign output value to the global variable
        const checkResult = check(response, {
            "is status 200": (r) => r.status === 200,
        });
        let responseMessage;
        try {
            responseMessage = response.json();
        } catch (e) {
            console.error("Failed to parse JSON response: ", response.body);
        }
        check(responseMessage, {
            "Success!": (r) => r && r.message === "Success!",
        });
        sleep(sleepTime);
    });
}


export function updateExistingUser(authToken, sleepTime, profileId) {
    group("TC02: Update an existing User", function() {
        const response = http.put(
            `${BASE_URL}/User`, {
                UserProfileID: `${profileId}`,
                organisationContactID: `${generateRandomOrganisationContactID()}`,
                name: "Performnace Benchmark Testing",
                UserTypeID: `${generateRandomUserTypeId()}`,
                email: "perftest@test.com",
                phoneNumber: `${generateRandomPhoneNumber()}`
            }, {
                headers: {
                    Authorization: authToken,
                    "Content-Type": "application/json",
                },
                tags: {
                    name: "Update an existing User"
                },
            }
        );
        const responseDuration = response.timings.duration;
        TC02_UpdateExistingUser.add(responseDuration);
        console.log("Response: ", response.body);
        const checkResult = check(response, {
            "is status 200": (r) => r.status === 200,
        });
        let responseMessage;
        try {
            responseMessage = response.json();
        } catch (e) {
            console.error("Failed to parse JSON response: ", response.body);
        }
        check(responseMessage, {
            "Success!": (r) => r && r.message === "Success!",
        });
        sleep(sleepTime);
    });
}


export default function() {
    const authToken = login();
    if (!authToken) {
        console.error("No auth token, exiting test");
        return;
    }
    const sleepTime = generateRandomSleepTimer();
    const UserProfileID = generateRandomUserProfileID();
    let generateSampleUserData = generateSampleUserDataFinal(); //This is function which generate a random payload
    createNewUser(authToken, sleepTime, generateSampleUserData);
    updateExistingUser(authToken, sleepTime, profileId);
}