Submit
Triggered when a user submits an application
Event Type
"application.submit"Description
This event is triggered when a user successfully submits an application through an application panel.
Payload Structure
Prop
Type
Question Fields
Prop
Type
Example Payload
{
"type": "application.submit",
"payload": {
"applicationId": "APP-5678",
"panelId": "staff-application",
"submitterId": "713115896805064856",
"submitDate": "2024-01-18T15:30:00.000Z",
"questions": [
{
"question": "What is your timezone?",
"description": "Please include your usual availability.",
"required": true,
"type": "TEXT",
"choices": [],
"skipped": false,
"answer": "CET, usually available after 6 PM",
"answerRaw": "CET, usually available after 6 PM"
},
{
"question": "Which roles are you applying for?",
"description": null,
"required": true,
"type": "CHOICE",
"choices": ["Moderator", "Support", "Developer"],
"skipped": false,
"answer": "Moderator, Support",
"answerRaw": "0 1"
}
]
}
}Example Usage
app.post("/webhook", async (req, res) => {
const { type, payload } = req.body;
if (type === "application.submit") {
console.log("New application submitted!");
console.log(`Application ID: ${payload.applicationId}`);
console.log(`Panel: ${payload.panelId}`);
console.log(`Submitter: ${payload.submitterId}`);
console.log(`Questions: ${payload.questions.length}`);
await storeApplication({
id: payload.applicationId,
panelId: payload.panelId,
submitterId: payload.submitterId,
submittedAt: payload.submitDate,
status: "pending",
questions: payload.questions,
});
const summary = payload.questions.map(question => ({
question: question.question,
answer: question.answer,
skipped: question.skipped,
}));
await notifyApplicationReviewers(payload.panelId, {
applicationId: payload.applicationId,
submitterId: payload.submitterId,
summary,
});
}
res.status(200).send("OK");
});Use Cases
- Track application submissions in your own database
- Send notifications to review teams
- Generate application metrics and analytics
- Integrate with external HR or management systems
- Automate initial application processing
- Store full question and answer snapshots for auditing