🎉 Tickety V3 has now been released! Read more →
APIHTTP EventsApplication Events

Accept

Triggered when an application is accepted

Event Type

"application.accept"

Description

This event is triggered when a staff member accepts a pending application.

Payload Structure

Prop

Type

Example Payload

{
  "type": "application.accept",
  "payload": {
    "applicationId": "APP-5678",
    "panelId": "staff-application",
    "submitterId": "713115896805064856",
    "submitDate": "2024-01-18T15:30:00.000Z",
    "reviewerId": "280158289667555328",
    "reviewDate": 1705594800000,
    "reason": "Great qualifications and experience!"
  }
}

Example Usage

app.post('/webhook', (req, res) => {
  const { type, payload } = req.body;

  if (type === 'application.accept') {
    console.log(`Application ${payload.applicationId} accepted!`);
    console.log(`Reviewer: ${payload.reviewerId}`);
    console.log(`Reason: ${payload.reason}`);
    
    const reviewTime = payload.reviewDate - new Date(payload.submitDate).getTime();
    const hoursToReview = Math.floor(reviewTime / (1000 * 60 * 60));
    
    console.log(`Review time: ${hoursToReview} hours`);
    
    // Update application status
    await updateApplicationStatus({
      id: payload.applicationId,
      status: 'accepted',
      reviewerId: payload.reviewerId,
      reviewedAt: new Date(payload.reviewDate),
      reason: payload.reason,
    });
    
    // Notify the applicant
    await notifyApplicant(payload.submitterId, 'accepted', payload.reason);
    
    // Grant roles or permissions
    await grantNewMemberRole(payload.submitterId, payload.panelId);
  }

  res.status(200).send('OK');
});

Use Cases

  • Automatically grant Discord roles to accepted applicants
  • Update application status in external HR systems
  • Send custom acceptance messages or emails
  • Track acceptance rates and review times
  • Trigger onboarding workflows
  • Generate analytics on application success

On this page