Retool workflow integrations

I am doing a proof of concept of Retool before making a major investment for my company Elsevier.
As part of the demo that I am planning to stakeholders I wanted to build a github workflow integration.
Initially I used the github apps to be called on the submit of a request via my retool application. However this was too slow to process on submit. So I wanted to separate the user request and execution . So workflow will update the github repository on a schedule. This is where I get stuck as workflow does not support apps 0auth :frowning:
This is a major limitation as my repo is owned by my organization so I can not use personal tokens?
Please advice I options available?

Hello @R2rhoney!

Thank you for letting us know, we would love to work with you to help set up a product demo and potentially get you in touch with our sales team if we are the right fit.

You are correct, unfortunately workflows does not currently support 0auth :smiling_face_with_tear:

Someone from your Github org should be able to generate a personal access token for you to use to set up the Github Resource to connect it with your Retool app.

What is the action in the Retool app which is to slow? We might be able to help you find another work around or trigger and pass data into a workflow from an event in the app.

We also have office hours Tuesday and Thursday where you can join us and we can help you live on Discord. More information on that here.

Thankyou for your update I will see if I can get a token for our org

1 Like

Sounds good! Let me know if they are able to provide you with the token needed to add to the request to Github :crossed_fingers:

Unfortunately my organisation does not allow personnel token based access to a repo in an org. I must use 0AUTH which limits my ability to use graphql? Is there anyway to use 0AUTH to authenticate with in my workflow? Or can I use Graphql resource for github in the application or in workflow ?
I don't want to have 7 or 8 api calls sequence one after the other on a event trigger . The user is wating for changes ? I just want a workflow to run a regular intervals and collect the latest request from app and process them in github. However workflow does not support Github Auth or 0AUTH and applications don't support graphql for github? What am I missing?

Hello @R2rhoney,

I am sorry to hear that. GraphQL resources should not specifically need 0AUTH, but it will need credential for access as outlined in our docs here for apps.

Unfortunately we have not yet built 0AUTH access via workflows. I can add your request for this feature to our engineer team.

You can try using a GraphQL resource for Github, but the better option might be to use a Github resource as outlined in our docs here.

Another option would be for a workflow to be scheduled on a regular interval, which triggers a single API request to your retool app, to then trigger an interaction with the Github resource inside the app where you are able to use 0AUTH to 'collect the latest request from app and process them in github' as you described above :sweat_smile:

Thanks Jack
So I was going to do the github interaction in the app then feed the results to workflow to manipulate and then back to app to update github
I have managed to pass the results of the query into StartTrigger.data as shown in image . How do I get this data . Tried every think to process the input so I can pass it to my python task?

So in the image I have the data as an input in my code tasks but I can not reference it

Tried startTrigger.data Tried startTrigger.data.key.terraform_file etc , just not sure why I can not get the data from the inout?

Hi @R2rhoney,

You should be able to access the payload of data being sent to the startTrigger with startTrigger.data however, I believe the issue might be that you are not passing in the Github data to the workflow properly.

You should set the startTrigger block to be triggered on a Webhook. From the screenshot it looks like no triggers are enabled :sweat_smile:

In your app, when you get the data you want from the Github resource, send this to the trigger Webhook URL via something like a POST method and then you can access this data with startTrigger.data to then process as you described.

The startTrigger.metadata is information about the code block itself(if the given data is the correct payload being passed then we have another issue and I have many more questions :sweat_smile:).

Here are the docs on this process.

I would recommend using the 'Test JSON Parameters' field to test your python task to be sure that is working properly. StartTrigger.data will be populated only when the Webhook URL is hit, not when you click the "Play" button, unless you put test data into the 'Test JSON Parameters'.

Hope this helps!

Thanks Jack, but I don't think I understand . I have an github app resource that on success calls the new workflow resource and and then passes the github tvfar as a dataset json.

This all works fine and my github json is now available inside my workflow but I can not get out it in my code1 resource.

I have highlighted that I am looking at history of workflow on object code1 in workflow. I have the terraform file as input on code1 but startTrigger.data is not recognized as an input object but its there


as an input to code1 (highlighted). So think there is a bug as I should be able to reference the input data in code1. The web hook is enabled. Why do I need a post web hook if I am calling the workflow as a success on my github resource and passing the data ?

Its okay I found out what my problem was . The key value json had to be sorted.
image

Hello @R2rhoney!

Apologies for the confusion. I am glad you got everything sorted out :sweat_smile:

You are correct, calling the workflow on success in the Github resource is best practices!