Leave request botDevelopment & Customization

A Slack leave request bot in Python: a short form with dates and type, sent to an approval channel and a sheet

Usually ready in 15 minutesRevisions includedQuality check
Packages
Payment protectionDetails
  • Revisions within the package are free.
  • If you do not respond within 3 days of delivery, the work is accepted automatically.

The money is reserved when you pay and released only once you accept the work.

A Slack leave request bot in Python: a short form with dates and type, sent to an approval channel and a sheet

Example result

Example for the Standard package

Telegram bot for booking haircuts at a barbershop

The bot in Telegram

Booking a haircut in the bot

A part of the code

async def booking_done(update: Update, context: ContextTypes.DEFAULT_TYPE) -> int:
    """The last step of the form: thanks the client and passes the request on."""
    request = context.user_data["booking"]
    request["phone"] = update.message.text.strip()
    await update.message.reply_text(TEXTS["booking_thanks"], reply_markup=main_menu())
    await context.bot.send_message(settings.admin_chat_id, format_request(request))
    sheet.append_row([datetime.now().isoformat(timespec="minutes"), *request.values()])
    return ConversationHandler.END

All the answers and buttons are in texts.yaml, so the client changes a price or the hours without touching the code.

Files: a ZIP archive with bot.py, texts.yaml, settings.example.env (where the bot token and the sheet go, filled in by the client), requirements.txt and a README: creating the bot in Telegram, connecting the Google Sheet and running it on a small server or hosting. The bot sends the request but does not check the barbers' calendar: the owner confirms the time.

Client: a barbershop with 3 barbers that took bookings only by phone. Task: a Telegram bot with a menu: prices, address and hours, a booking form (service, day and time, name, phone) that sends each request to the owner's chat and adds it to a Google Sheet.

The client and all details are made up.

About this service

Leave requests sent in private messages are easy to lose. This Slack bot gives them one route. Basic answers by slash commands with your leave rules, who approves and the holidays you list. From Standard a form asks for the type of leave, the dates, who covers and a comment, and posts the request to your approval channel and a Google Sheet. In Premium the request comes with Approve and Decline buttons that work only for the approvers you list, and the bot tells the employee the decision in a direct message. The bot does not count leave balances, check a calendar, connect to HR or payroll systems or give legal advice on leave: it passes on a decision a person makes. It takes no payments and runs in Socket Mode, with no public web address needed. The README shows how to create the app in your Slack workspace and run it on your own computer, server or hosting. The tokens stay with you.

What is included

  • What you getA ZIP archive with the Python code, your leave rules and form questions in a texts file, an example settings file and a README; the code is also shown on the order page.
  • One form for leaveType, dates, cover and a comment, from Standard
  • Approval channelEvery request posted where approvers see it
  • A sheet of leaveEach request is a row in a Google Sheet
  • Approve or declineButtons for the people you list, in Premium
  • Answer to the employeeA direct message with the decision

How it works

  1. 1
    RulesYou give the leave rules, kinds of leave and the form questions
  2. 2
    CodeWe write the bot and the guide to running it
  3. 3
    LaunchYou create the Slack app, add the tokens and the Google key and run it
  4. 4
    ChangesYou ask for changes within your package

What we need from you

Your leave rules exactly as employees should read them, the kinds of leave and the holidays you want listed; the questions of each form; the approval channel; for Premium, the Slack users who may approve and the text of the decision message. Never send the bot's tokens, a Google access key or any passwords: the README shows where you put them yourself.

We will ask you:

  • Kinds of leave
  • Form questions
  • Approval channel and approvers
  • Your leave rules

Compare packages

PackagesBasicLeave rules bot$25StandardLeave request bot$50PremiumLeave bot with approvals$86
Deadline1 day2 days3 days
Revisions123
PlatformSlackSlackSlack
Ready answersup to 10up to 25up to 40
Forms (request, booking, order)Noup to 3up to 5
Requests sent to your chat and a Google SheetNoYesYes
Admin commands and broadcastsNoNoYes
Languages of the menu112
Order BasicOrder StandardOrder Premium

Payment protection

You pay when you order, but the money is released only for accepted work.

  • Fixed priceThe package price does not change after you pay.
  • The money is reservedWhen you pay, the amount is only reserved. It is released to the service once you accept the work.
  • Checked before deliveryEvery result goes through a quality check before it reaches you, and you see it on the order page before accepting it.
  • Free revisionsAsk for changes within your brief as many times as the package allows.
  • Acceptance after 3 daysIf within 3 days of delivery you neither accept the work nor ask for changes, it is accepted automatically. If you write in the order chat after delivery, the order waits; once we answer, we may start the 3 days again and will say so in the chat.
  • Redo or a full refundIf the result does not match your brief and the revisions did not fix it, or the work takes more than twice its deadline, write in the order chat: we will redo the work or refund the payment in full.
How it works →

Questions and answers

Does it count how many days someone has left?

No. It does not track balances or check a calendar; your sheet keeps the record, and approvers decide.

Who can approve?

In Premium, only the Slack users you list in the settings file; anyone else's click is ignored.

Does it connect to our HR system?

No. It works inside Slack and writes to one Google Sheet through a Google access key you create by the README. Keys and tokens never go to us.

What about employees' data?

Requests stay in your Slack workspace and your sheet; the bot keeps nothing elsewhere. Telling employees how their data is used and following your local rules are on you.

Do I need a server?

A computer or server with Python that stays on; with Socket Mode no public address is needed. WhatsApp is not part of this service.

Did not find your answer?

Packages