Skip to main content

Overview

Message groups contain templates for SMS and email messages sent to candidates during the interview process. You can create message groups with custom messaging for different interview types (standard or questionnaire) and control when messages are sent.

List Message Groups

List available message groups for your organization/team. Endpoint: GET /qsi/gather/message-groups
curl -X GET https://api.prod.qualifi.hr/qsi/gather/message-groups \
  -H "x-api-key: ${API_KEY}"
{
  "data": {
    "messageGroups": [
      {
        "id": "message-group-uuid",
        "title": "Standard Interview Messages",
        "status": "PUBLISHED",
        "type": "standard",
        "default": true,
        "organizationId": "org-uuid",
        "teamId": "team-uuid",
        "createdById": "user-uuid",
        "createdAt": "2024-01-01T00:00:00Z",
        "updatedAt": "2024-01-01T00:00:00Z",
        "archivedAt": null
      }
    ]
  },
  "meta": {
    "requestId": "uuid",
    "timestamp": "2024-01-01T00:00:00Z"
  }
}

Get Message Group

Get message group details including all messages. Endpoint: GET /qsi/gather/message-groups/{messageGroupId}
messageGroupId
string
required
UUID of the message group
curl -X GET https://api.prod.qualifi.hr/qsi/gather/message-groups/{messageGroupId} \
  -H "x-api-key: ${API_KEY}"
{
  "data": {
    "messageGroup": {
      "id": "message-group-uuid",
      "title": "Standard Interview Messages",
      "status": "PUBLISHED",
      "type": "standard",
      "default": false,
      "organizationId": "org-uuid",
      "teamId": "team-uuid",
      "createdById": "user-uuid",
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-01T00:00:00Z",
      "archivedAt": null,
      "messages": [
        {
          "id": "message-uuid-1",
          "type": "INVITE",
          "smsBody": "You've been invited to complete an interview. Click here: {{link}}",
          "smsEnabled": true,
          "emailSubject": "Interview Invitation",
          "emailHeader": "You've been invited!",
          "emailBody": "Please complete your interview by clicking the link below.",
          "emailEnabled": true,
          "messageGroupId": "message-group-uuid",
          "createdAt": "2024-01-01T00:00:00Z",
          "updatedAt": "2024-01-01T00:00:00Z"
        }
      ]
    }
  },
  "meta": {
    "requestId": "uuid",
    "timestamp": "2024-01-01T00:00:00Z"
  }
}

Create Message Group

Create a new message group with messages for a team. Message groups can be of type ‘standard’ or ‘questionnaire’ and can be in ‘DRAFT’ or ‘PUBLISHED’ status. Endpoint: POST /qsi/gather/message-groups
curl -X POST https://api.prod.qualifi.hr/qsi/gather/message-groups \
  -H "x-api-key: ${API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Standard Interview Messages",
    "type": "standard",
    "status": "DRAFT",
    "teamId": "team-uuid",
    "messages": [
      {
        "type": "INVITE",
        "smsBody": "You have been invited to complete an interview.",
        "smsEnabled": true,
        "emailSubject": "Interview Invitation",
        "emailHeader": "You'\''ve been invited!",
        "emailBody": "Please complete your interview.",
        "emailEnabled": true
      }
    ]
  }'
{
  "title": "Standard Interview Messages",
  "type": "standard",
  "status": "DRAFT",
  "teamId": "team-uuid",
  "default": false,
  "messages": [
    {
      "type": "INVITE",
      "smsBody": "You've been invited to complete an interview. Click here: {{link}}",
      "smsEnabled": true,
      "emailSubject": "Interview Invitation",
      "emailHeader": "You've been invited!",
      "emailBody": "Please complete your interview by clicking the link below.",
      "emailEnabled": true
    },
    {
      "type": "CANDIDATE_REMINDER",
      "smsBody": "Reminder: Complete your interview. Link: {{link}}",
      "smsEnabled": true,
      "emailSubject": "Interview Reminder",
      "emailHeader": "Don't forget!",
      "emailBody": "This is a reminder to complete your interview.",
      "emailEnabled": true
    },
    {
      "type": "COMPLETION_CONFIRMATION",
      "smsBody": "Thank you for completing your interview!",
      "smsEnabled": true,
      "emailSubject": "Interview Completed",
      "emailHeader": "Thank you!",
      "emailBody": "We've received your interview responses.",
      "emailEnabled": true
    }
  ]
}

Update Message Group

Update an existing message group. You can update the title, status, type, team, or messages. If messages are not provided, existing messages are preserved. Endpoint: PATCH /qsi/gather/message-groups/{messageGroupId}
messageGroupId
string
required
UUID of the message group to update
curl -X PATCH https://api.prod.qualifi.hr/qsi/gather/message-groups/{messageGroupId} \
  -H "x-api-key: ${API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "PUBLISHED"
  }'
{
  "title": "Updated Message Group Title",
  "status": "PUBLISHED",
  "messages": [
    {
      "id": "existing-message-uuid",
      "type": "INVITE",
      "smsBody": "Updated SMS body",
      "smsEnabled": true,
      "emailSubject": "Updated Email Subject",
      "emailHeader": "Updated Header",
      "emailBody": "Updated email body",
      "emailEnabled": true
    },
    {
      "type": "CANDIDATE_REMINDER",
      "smsBody": "New reminder message",
      "smsEnabled": true,
      "emailSubject": "Reminder",
      "emailHeader": "Reminder",
      "emailBody": "Don't forget to complete your interview.",
      "emailEnabled": true
    }
  ]
}

Message Types

Available message types:
  • INVITE - Initial interview invitation sent when a candidate interview is created
  • CANDIDATE_REMINDER - Reminder sent to candidates who haven’t completed their interview
  • COMPLETION_CONFIRMATION - Confirmation message sent after interview completion

Message Group Types

  • standard - For standard audio interviews
  • questionnaire - For questionnaire/text-based interviews

Message Group Status

  • DRAFT - Message group is not yet published and cannot be used
  • PUBLISHED - Message group is active and can be used in interviews

Message Variables

In SMS and email bodies, you can use the following variables:
  • {{link}} - Interview invitation link (automatically replaced)
When updating messages, include the id field for existing messages you want to update. Messages without an id will be created as new messages. If you don’t provide the messages array, existing messages will be preserved.

Using Message Groups

When creating interviews, you can specify a messageGroupId:
{
  "title": "Software Engineer Interview",
  "questionIds": ["uuid1", "uuid2"],
  "messageGroupId": "uuid"
}
If no messageGroupId is specified, the default message group for your organization will be used.