Pairify

This document provides information on what Pairify is and how to use it to record pairing sessions.

Overview

This document provides information on what Pairify is and how to use it to record pairing sessions.

What is Pairify?

Pairify is a Slack bot application that will scan a Slack channel on a schedule for any conversations reacted with Pairify emoji (:pairify:).

It will then extract all Zendesk URLs, Slack participants/mentions and automatically create a pairing issue with the Zendesk URLs, participants (converted to GitLab.com usernames) and closes out the issue.

Pairify demo

Using Pairify

NOTE: For Pairify to correctly map your Slack user to your GitLab.com user, you must configure your Slack profile’s GitLab.com profile field. See edit your profile for more details.

To incorporate Pairify into your pairing session workflow:

  1. Create a thread in the #spt_pairing channel and pair with your colleagues!

  2. Ensure that the thread conversation contains the following information:

    a. All Zendesk ticket URLs worked on

    b. All participants in the pairing session need to comment on the thread, or mentioned @slack_username in the thread

  3. Optional. Specify the pairing session type.

  4. React to the thread in the #spt_pairing channel with the Pairify emoji (:pairify:) emoji to mark a conversation for Pairify to process.

You then need to wait for the next scheduled execution of Pairify, as explained in how Pairify works.

How Pairify works

Pairify executes every 30 minutes via a scheduled pipeline. When the pipeline begins, Pairify will search the #spt_pairing channel for any conversation reacted with the Pairify emoji (:pairify:) emoji that was created within the last 6 hours.

Pairify will then:

  1. Extract any Zendesk URLs, participants and mentions within the conversation
  2. Convert all Slack users to their GitLab.com counterparts
  3. Create a GitLab issue in the Support Pairing project with the details extracted. The pairify label will be automatically applied to the issue, along with any other labels determined during processing.
  4. Creates a message on the conversation thread indicating that the conversation has been processed. The response will also include a link to the issue created
  5. React to the conversation with an Issue created emoji (:issue-created:) emoji so the conversation is not processed again on subsequent executions.

Specifying the pairing session type

Pairify can apply additional labels to pairing issues to indicate the pairing session type if you react with additional emojis.

The reactions in this table are mutually exclusive - Pairify will only process the first reaction added to the conversation if multiple reactions are found:

Emoji Shortcode Description
Baobab emoji :baobab: Adds the SGG::Baobab label to the pairing issue
Ginkgo emoji :ginkgoleaf: Adds the SGG::Ginkgo label to the pairing issue
Kapok emoji :kapok: Adds the SGG::Kapok label to the pairing issue
Maple emoji :maple_leaf: Adds the SGG::Maple label to the pairing issue
Pine emoji :pine: Adds the SGG::Pine label to the pairing issue
Crush emoji :crush: Adds the crush label to the pairing issue
Office hours emoji :office-hours: Adds the office hours label to the pairing issue

To ensure these reactions are picked up by Pairify, you should add these reactions before adding the :pairify: emoji to your conversation.

Troubleshooting

Last modified March 11, 2024: Fix broken images (c677b330)