How can you create a manual approval step in a Zap?

  • 15 October 2019
  • 8 replies
  • 1509 views

Userlevel 7
Badge +12

Let's say you have a Zap that automates a the generation of a quote for work, based on the answers a potential client gives you in a form (eg Typeform, Active Campaign, etc).

The Zap has done most of the work for you, but you want to double check the details before it's made into a document and emailed to the client.

How could you add a manual approval step into that flow to give you control over what's sent, whilst automating the rest of the process?

I think that this is one of those interesting questions that could have more than one answer, so I'm really curious to hear your thoughts!



8 replies

Userlevel 7
Badge

You can collect the form response in a spreadsheet app like Google Sheets and then insert a checkbox column ("Approved") and trigger the zap based on updates to that column. You can do the same in airtable and then create a view filtered to the tick column and then trigger by new update in that view.

On Kanban boards like Trello, the zap can be triggered when a card is dragged from one list to another. List 1 "Quotes" List 2 "Approved Quotes" This can also be done in Airtable with its Kanban view

In Gmail a zap can be triggered when a label is manually added to an email. Label = "Approved quote"

Another useful email "vetting" process is to "Create Draft" rather than "Send email", so that you can give it a quick once over and tweak before sending.


Userlevel 7
Badge +12

Those are some great options, @ChrisP!

I especially like the idea of creating a draft email - I'd not thought of that one!


Userlevel 7
Badge +10

There is definitely more than a single answer here!

But the way I would do it is through a two zap process. The first zap triggers off of whatever like a form submission etc, processes the data and creates the document for editing or approval. That zap finishes by communicating (either through email or slack or the like) a message to an approver, that message has three links, one to the document for editing/reviewing, one labeled "no" and another link labeled "yes" those two links are encoded GET URLs for the webhook trigger in step 2 zap.


That URL is encoded with ?approve=yes&docURL=https://whatever.com/etc&approvername=fred OR ?approve=no&docURL=https://whatever.com/etc&approvername=fred and then the second zap which is triggered from the webhook has a path in there for approve=yes and another for approve=no. Etc.


I've actually used this in a real world situation where the first zap also fires off a third zap via a webhook which delays for three days and checks to see if the approval request has been responded to, (via storage) and then if not it sends a similar email to the next step up in the approval process.


We've debated how many levels/layers to do this, but so far we're just using two approvers, if the second doesn't take action within three days a disapprove webhook is called.





Userlevel 3

I've built this 2 ways.

  1. In the Zap, I created a task in Basecamp with the text/ detail needing approval - you can edit the text in the 'body' if needed. Then the 'tick' to mark the task as complete triggers the workflow to carry on to the next step - taking the text with it.
  2. I used an Infusionsoft campaign email - again with the detail in a paragraph and with 3 trackable buttons.
  3. Approve
  4. edit - took them to a form to edit the text and approve.
  5. decline


Userlevel 5
Badge +1

Yeah for me I have built this in a couple different ways depending on the situation.


Simple Yes: Airtable or Google Sheets (I used Airtable), with a checkbox field to trigger the second part of the automation.


Complex Decision with Multiple Options and Data Input: Process Street (I work here full disclosure) - Runs a checklist, fills with relevant data, and then as a part of that process, provides you with multiple options you can take (and potentially input other data into text fields/form fields), before triggering the second automation using a checklist.


Simple Yes but Multiple Options - No Data: Trello - Creates a card with info, you then move it to the appropriate list based on your decision. Works best for a multi-option decision, but not for having to input specific variable data.


Simple Yes but with Basic Data: Email or Slack Message sent to you with data, and then you provide a specific response to the question as a reply that then triggers the second Zap and enacts the decision. Works if you need to input basic data and make a basic decision. You could also receive a Push Bullet and then reply via something like SMS or Push by Zapier.


Userlevel 7
Badge +12

@PaulKortman, @Bryan and @BlakeBailey - these are all great ideas, thank you!

I love it when there's more than one solution to a problem - it means you can pick the one that's right for your situation and also it's fun!


Userlevel 7
Badge +7

This topic has been going for a while, but I just saw it. What I did in one of our workflows is the following:

  • Create again a 2 zap workflow structure; 
    • One zap would trigger on a form, mail or anything that needs to be approved and sends a message to our Slack
    • The other zap would take care of the approvement and further actions

The approvement zap is the interesting part, we liked to have it all on 1 system (Slack);

  • The approvement workflow would trigger on a new slack message in a private channel
  • There would be a filter that allows the workflow to continue only if the message starts with “approve” or “Approve”
  • We used a formatter that would remove the “approve” string and only take the last bit. In this case we would approve per ID, for example “approve 1” and the formatter would take 1
  • The ID, 1 in this case, would search for any data that is related to this in a Google sheet and continue with the workflow.

Cheers! 

 

~Bjorn

Userlevel 1

@Danvers my startup builds a manual review platform that can very easily do something like this. We are pre-launch in beta. Happy to send a pair of credentials across :) 

My email is bernat@humanlambdas.com

Reply