Question

How to create a Zapier-based ticketing system in Slack with product-specific channels?

  • 2 November 2023
  • 1 reply
  • 149 views

  1. Complete story:
    I am trying to create a ticketing system within Slack - here is what I'm trying to design:

  2. Users fill out a form within slack - fields like [Product Name] and [Description] - basic stuff.

  3. Once the post is made on the channel, I want Zapier to trigger a zap that digests the post, and based on the [Product Name] they select, copy the description of the issue and body of message and transfer that information to a separate slack (product specific) channel. Here is an example of the form output:

r/zapier - Zapier Filter Confusion

Form Output

  1. Problem: the message sends to the channel, BUT, it is formatted incorrectly and doesn't have the correct logic in place to recognise the specific section of the message that matter (the product line). Here is an example of how the message outputs to the other channel through Zapier:

r/zapier - Zapier Filter Confusion

Zapier Message Transfer Output

I cannot figure out how to make the filters search for the specific text within the message - it only looks at the type of information sent from Slack - see attachment:

r/zapier - Zapier Filter Confusion

What I want is for Zapier to digest the text within message posted on the channel, based on the product line, send it to the correct channel (channel = HSEQ-Support) and attach the name who posted it, link to the original thread, and description of the issue they typed with the date and time it was posted.

 

I sought help in another community previously but they only said ‘you need to use split text’ etc. While that definitely got me closer to a solution, it didn’t actually tell me know to use split text to get the output I’m after. I know it sounds tedious, but this is not exactly the easiest system to use for someone who doesn’t work with tools like these. I’m sure if someone walked me through how to do a couple examples, I’ll be able to figure out the rest :) 


This post has been closed for comments. Please create a new post if you need help or have a question about this topic.

1 reply

Userlevel 7
Badge +11

Hi @Jarvin, welcome to the Community! 👋

Filter issues
Hmm, the filter doesn’t look quite right. It looks like the first filter rule is set up to check that the Text field contains the same content that is currently in the same Text field, plus what’s in the Raw Text field.
939e662f98aebcd8bbfbac6e3c3e1d89.png
Are you wanting to find a match for the word “support” for example? If so I’d suggest updating the first filter rule to be a similar setup to the second filter rule (but use “support” instead of “quality” - or whatever the desired keyword is). For example:
f37ffa3525d4486a5d52ec2fd76208b2.png
That second filter rule appears to be correctly setup to look for the word “quality” in the Text field. You can learn more about using filters here: Add conditions to Zaps with filters.

Using Formatter
To extract the values from the Slack message into different fields that you can then select separately so that you can format the reposted Slack message, you’d need multiple Formatter (Text > Split Text) actions. As you’d need to separate the text into new lines for each question, then split each question from it’s answer. The thing with using split text though, is that it will remove the separator you’ve selected from what it outputs.

For example if you set the Split Text action up have the separator of “[:space:]*” like so:
0de9e97a3af83d6d60bec1cb1570429d.png

This would remove the space and subsequent “*”, but you’d want to keep that “*” at the start of the question in order to keep it formatted as bold:
840f355a07b61238966b50f75309c9d7.png
So you’d need to add the “*” back in when constructing the message in the Slack action. 

If you’re not looking to add any additional formatting and just have it posted with the same formatting of the original message, you could use Formatter’s Replace transform instead of Split Text
 
In which case the first Formatter (Text > Replace) action could be set up like so:

630ceb2c27408a9ac304dfd2d66c5349.png
Which would format the text like so:
56a4faed89b8751c063ee1df9d5538ca.png
Adding two new lines in between each question while retaining the existing “*”.

Then in a second Formatter (Text > Replace) action you would set it up like this:
11e11f22fd3a01f6519495568410d8bb.png
Which would take the reformatted text from the previous Formatter action to find any instances of “*” followed by a space, and replace them with a “*” followed by a newline break to move the answers down onto a new line:
ae0cd13bbe997068acc738134c6c3e09.png
Then in your Slack action you’d just need to select the reformatted text that’s output by the second Formatter action:
e3d7683d3d0577e717f6362934f66fff.png
Which should then post the message in Slack like this:
fc0ba3279bad233c0edd2f1ced7c13b4.png

You can find out more about using Formatter’s transform functions like Split Text and Replace here: How to use Formatter functions

Alternatively, you could potentially handle this in a single Code by Zapier action. It’s a bit more advanced but we do have an AI feature that can assist with generating the necessary code for you. More on that can be found here: Generate a Code step using AI (Beta)

Hope that helps to get you pointed in the right direction. Let me know if you run into any issues on that, happy to further assist! 🙂