Describe the issue/error/question
Hello, I hope this is an appropriate question to ask in this forum. If not, please let me know.
I am trying to use the Code node, in conjunction with a form submission webhook node, plus the Google Workspace Admin node. This Code node is meant to check against the Google Workspace API, to see if a username is available. It goes through iterations of possible usernames, until it finds an available, valid one.
I really do not know enough about JavaScript to debug this. But I was hoping this community might be able to assist. I’m sure I’m missing something simple - like incorrectly mapping the JSON result from the previous (webhook) node.
Code snippet
async function main(node) {
// First, let's define the variables we need to create a user
const { firstName, lastName } = node.Tripetto.json.body;
// Now let's define the main function that will check for available usernames
async function findAvailableUsername() {
let username = firstName[0] + lastName; // Try first initial + last name
let searchResults = await node.GoogleWorkspace.searchUser({
query: username,
viewType: 'domain_public'
});
if (searchResults.length === 0) {
// If the username is available, return it
return { username };
} else {
// If the first option is not available, try first name + last name
username = firstName + lastName;
searchResults = await node.GoogleWorkspace.searchUser({
query: username,
viewType: 'domain_public'
});
if (searchResults.length === 0) {
return { username };
} else {
// If the second option is not available, try adding a number to the end of the last name
let i = 1;
while (true) {
username = firstName + lastName + i;
searchResults = await node.GoogleWorkspace.searchUser({
query: username,
viewType: 'domain_public'
});
if (searchResults.length === 0) {
return { username };
}
i++;
}
}
}
}
// Finally, let's call the main function and return the result
return findAvailableUsername();
}
What is the error message (if any)?
Code doesn’t return an object (instead returning “undefined”)
Please share the workflow
Share the output returned by the last node
[
{
"headers": {
"host": "n8n.example.tld",
"content-length": "227",
"accept": "application/json",
"accept-encoding": "gzip, deflate",
"content-type": "application/json",
"x-forwarded-for": "127.0.0.1",
"x-forwarded-host": "n8n.example.tld",
"x-forwarded-proto": "https"
},
"params": {},
"query": {},
"body": {
"site": "string",
"firstName": "text",
"lastName": "text",
"tripettoId": "00000000000000000000",
"tripettoCreateDate": "2023-01-01T20:11:14.131Z",
"tripettoFingerprint": "<fingerprint>"
}
}
]
Information on your n8n setup
- n8n version: 0.209.4
- Database you’re using (default: SQLite): SQLite
- Running n8n with the execution process [own(default), main]: Default
- Running n8n via [Docker, npm, n8n.cloud, desktop app]: Docker
Thank you!