diff --git a/slack_utils/slack_utils.go b/slack_utils/slack_utils.go
index f3ca9eceb76ba64e06a9fc83e653785e152bd100..fe915780ac0c361ef7c64cb71dfb0eca23db21bd 100644
--- a/slack_utils/slack_utils.go
+++ b/slack_utils/slack_utils.go
@@ -15,6 +15,18 @@ type SlackField struct {
 	Value any
 }
 
+type SlackFile struct {
+	File            string
+	FileSize        int
+	Content         string
+	Filename        string
+	Title           string
+	InitialComment  string
+	ThreadTimestamp string
+	AltTxt          string
+	SnippetText     string
+}
+
 type SlackClient struct {
 	Client *slack.Client
 }
@@ -116,6 +128,28 @@ func (s *SlackClient) postMessage(channel string, messageOptions []slack.MsgOpti
 	return messageTimestamp
 }
 
+func (s *SlackClient) SendFile(channel string, file SlackFile) error {
+	fileParameters := slack.UploadFileV2Parameters{
+		Channel:         channel,
+		File:            file.File,
+		FileSize:        file.FileSize,
+		Content:         file.Content,
+		Filename:        file.Filename,
+		Title:           file.Title,
+		InitialComment:  file.InitialComment,
+		ThreadTimestamp: file.ThreadTimestamp,
+		AltTxt:          file.AltTxt,
+		SnippetText:     file.SnippetText,
+	}
+
+	_, err := s.Client.UploadFileV2(fileParameters)
+	if err != nil {
+		logs.ErrorWithMsg(err, "Error uploading file to slack:")
+		return err
+	}
+	return nil
+}
+
 func hasEmoji(message string) bool {
 	emojiRegex := regexp.MustCompile(`:[a-zA-Z0-9_]+:`)
 	return emojiRegex.MatchString(message)