Hi there!

I researched how we can make Facebook and Questetra work together in order to improve the efficiency of our company.
The following is a summary of what I studied.

TOC
1. The background to why I did the research
2. Setting up cooperation between Facebook and Questetra
2-1. Settings in Zapier
2-2. Settings for invoking Zapier from Questetra
3. Comparison of methods of collaboration
4. Closing

 

1. The background to why I did the research

We have a business operation of regularly posting articles to our company’s Facebook page as part of our marketing efforts.

Previously, people who had permission to post articles on the Facebook page were writing the content of articles, so it was not a bothersome task to post them manually. But despite that, it was decided we would make a change to separate the person who creates the article draft and the person who checks it, so the person who does not have posting authority would create the draft.

Therefore, I wanted to make the operation streamlined and automate the series of tasks as much as possible.

 

2. Setting up cooperation between Facebook and Questetra

For connectivity, I could consider the following two methods.

  • a) To invoke Facebook API directly from Questetra
  • b) To post to Facebook from Questetra via an integration tool

Although I tried both methods, I deployed the b) method for actual operation. I will explain the reason later.

I decided to adopt Zapier as the integration tool. Thus, the mechanism of implementation would be like the figure below.

 

2-1. Settings in Zapier

My intended goal here is for Zapier to receive an HTTP request and post an article on a Facebook page. Regarding the settings in Zapier, you can find various information if you search about how to, so in this section I will narrow it down to the gist.

  • TRIGGER
    • “Catch Hook” in “Select Webhooks by Zapier Trigger” (Copy the URL for later)
  • ACTION
    • “Create Page Post” in “Select Facebook Page Action”
    • Choose the target Facebook Page account
    • Select the target Facebook page listed in “Page”. Since the Message and Link URL need to be associated with the following JSON format, they will be associated after sending this manually written JSON code created for testing. (I felt these procedures were a little cumbersome…)
{
  "message" : "(Input post body here)",
  "link" : "(Input Link URL here)"
}

 

2-2. Settings for invoking Zapier from Questetra

Although posting to a Facebook Page will be done later through an Approval flow, I will omit that part and explain only the method of sending data to Zapier since the theme of this article is collaboration. What we are going to do is to send an HTTP request in the prescribed format to Zapier’s Webhook from Questetra.

 

First, prepare the JSON data to be sent with a Service Task (Data Assignment).
* Related Manual: M227: Auto Executing Data Binding, Arithmetic Operations

Set the following formula (the parts q_string0 and q_string1 depend on the field name of the Data Items)…

{
  "message":"#{#q_string0}",
  "link":"#{#q_string1}"
 }

 

…and use a Throwing Message Intermediate Event (HTTP) to send an HTTP request to Zapier’s Webhook.
* Related Manual: M225: Auto Sending of HTTP Request with Business data Inserted

  • Network Settings
    • Access URL: https://hooks.zapier.com/hooks/catch/*****/*****/ (Copied from settings in Zapier)
    • HTTP Method: POST (Specify Request Body)
    • Data item to save error details: Although it is not mandatory, it is better to specify this so that you can check any error details. It is even better to configure processing upon an error after the event, that refers to this Data Item to determine the presence or absence of an error.
  • Request Body: When sending JSON, specify the String-type Data Item that stores JSON to be sent to “Data item to send as request body”, and specify “application/json” at “Content-Type of request body”
  • Response Settings: Although it is not mandatory, if you check “Save Response” and specify a String-type Data Item, you can confirm the result.

 

In addition, if you would like scheduled posting, you can do it by inserting the following to control the timing of sending the HTTP request.
 ・Place a Timer Intermediate Event before the Throwing Message Intermediate Event
 ・Add a Datetime-type Data Item to specify the publishing date and time
 ・In the Timer Intermediate Event, specify the above Data Item in “Datetime specified by a data item”
* Related Manual: M223: Sleeping in the Middle

These icons in a sequence look like the following figure.

 

3. Comparing methods of collaboration

I mentioned earlier that there are two methods to achieve connectivity. Now, I would like to consider the advantages and disadvantages of both of them.

a) To invoke Facebook API directly from Questetra
b) To post to Facebook from Questetra via an integration tool

First, look at a):

□Advantages of a)
・There are fewer tools you need to manage

■ Disadvantages of a)
・You need a Facebook app registration to invoke Facebook API, and you have to make it “live” (enabled).
・Retrieving an Access token to invoke the Facebook API is complicated. Moreover, you need to prepare a script for invoking Facebook API.

* Although it is natural that you need to register the application on Facebook when connecting using OAuth, It is hard to do so many procedures to activate it, such as needing a privacy policy URL and reviewing it. (Incidentally, I was stuck in a situation where I could not understand what was wrong because before going live, it was possible to post via the API but other users will be unable to view the post.)
* Concerning the Access token, there is a circumstance where it is necessary to obtain an indefinite page access token after obtaining a user access token (even though Questetra has a mechanism to easily obtain an OAuth access token, it cannot be used because of this complicated situation).
* Regarding the script (that works in Questetra), we can prepare something packaged as an add-on XML, so we can still manage this issue.

 

Next, look at b):

□ Advantages of b)
・Facebook integration settings are much easier since all you need is to set up the integration tool.

■ Disadvantages of b)
・More tools to manage
・I cannot schedule a post with the specified date and time in the connection mechanism provided by Zapier.

* With Zapier alone you cannot make a scheduled post (even though Facebook API has that function, Zapier does not support it), but Questetra can wait until the specified date and time, so it can be achieved this way.

 

Thus, since a) takes a lot of work, I chose the b) method.
To be honest, it would be good if there was something that is packaged as a “Facebook Connection Component” in the form of an add-on XML, but I gave up on this because it would be very cumbersome to configure and use.

 

4. Summary

Although I wrote various things, incorporating an automatic posting system on Facebook in the middle of the business flow can be achieved easily. I hope you can make good use of it.

If you have any questions please feel free to contact us via the Contact form.

1 thought on “Setting up Collaboration between Facebook and Questetra”

  1. Pingback: Examples of Collaborations with Other Systems and BPM Workflow (June, 2019) - Questetra

Comments are closed.

%d bloggers like this: