Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Introducing Trellinator: Automate Trello with Google Apps Script

82 comments

Comment

Log in or Sign up to comment
aericio November 21, 2020

image_2020-11-21_001914.png@Iain Dooley got a typo here

Like Iain Dooley likes this
Iain Dooley
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
November 23, 2020

@aericio fixed thanks!

Mauricio Geiring January 28, 2021

Hi @Iain Dooley , I followed your step by step and it worked flawlessly, thanks a lot. I've managed to make the helloWorld function work too.

I've started using Butler Bot before it became a Power-Up, and I'm missing some functionality, especially when dealing with accounts that doesn't support the legacy Butler Bot code-writing style. So, I've searched for an alternative and found Trellinator.

I'm not a developer, I struggle a lot with coding, I only have a superficial knowledge of VB and Python, but I find it very useful to know how to automate stuff (just like I did with Butler Bot).

I need a guiding light to start understanding the logic behind Trellinator. I know that what I'm asking is basically your work, that people pay you for, but could you translate a couple of Butler code just to get me started? I know that I lack JavaScript knowledge, but I'm willing to dig deeper. I've tried to write my own function, but it doesn't work. Could you help me? I've selected two pieces of Butler Bot code that I use:

when a card in list "PRAY TODAY" is moved into list "WAITING", add comment "Prayed on day {datenumber}, at {time24}."
when a card with a name containing " [{*}]" is moved into list "WAITING", set due in {cardnamewildcard1} days

I think those two examples are good enough for my brain to start thinking in the Trellinator way. Appreciate your help and advise.

Iain Dooley
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 29, 2021
Like Mauricio Geiring likes this
Mauricio Geiring January 29, 2021

@Iain Dooleythanks a lot, you're a great guy!

On the past days I've read almost everything I could about Trellinator documentation, and I'm figuring out a bunch of useful stuff and I'm finding my way through JavaScript too. I'm really impressed how powerful Trellinator turns out to be.

The way you use RegExp to find variables in the name it's very neat!

I wrote some functions and they are already working. Thanks to you, I'm officially migrating my boards to Trellinator and letting Butler Bot go.

Cheers.

Like Iain Dooley likes this
Mauricio Geiring January 29, 2021

@Iain Dooley, BTW, I've had a bit of a headache when I copied an example that used the plusDays() method, it's listed here and here. I think it would be nice to let you know.

Iain Dooley
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 29, 2021

@Mauricio Geiring oh yeah oops it's addDays:

http://docs.trellinator.com/trellinator_Trellinator.js.html#line516

I'll update the docs now thanks!

Like Mauricio Geiring likes this
Mauricio Geiring February 2, 2021

@Iain Dooley, it's me again. You helped me a lot, I thought I could give you back somehow, in case you didn't already know what I'm about to show you.

I'm using the countCards() method to rise up some stats on the board and I've figured out a way to do it more of a Butler-like style, with the card counted numbers as covers/attachments. There is this free service FakeImg.pl (it's open source), it gives you placeholder images accordingly to URL parameters, and it's possible to write some text on them. You can pass something like https://fakeimg.pl/256x64/434343/dedede/?text=54&font=bebas&font_size=48 and change the text parameter with the result of the countCards() method, and attach it to a card with the attachLink() method. It worked nicely, take a look below.

Thanks again.

Captura de tela 2021-02-02 212143.png

Like Iain Dooley likes this
Tracy Garcia
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
June 24, 2021

Greetings!

I have been trying to install this awesome bot into a board.  I was able to get the bot added as a user and the spreadsheet shows it has the webhooks setup.  I wanted to do the helloWorld test to make sure the bot is connected correctly.  I logged in under my personal Trello acct, created a new card and added a comment in it.  Waited for the bit to respond.... nothing happened.  

Last night I reinitialized the spreadsheet and .... got the same result.  

Can you tell me what I did wrong?

Thanks!

Like Iain Dooley likes this
Iain Dooley
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
June 25, 2021

@Tracy Garcia Hey Tracy, if you run this function from apps script:

https://gist.github.com/iaindooley/43900ae32bc30f3b94a73e546395bfc5

when you look at the callback URL that's registered, is the ID this long:

AKxxxbxxxxxW7nWligns8xxxxxJhXabixUxxxxxuhxxx8Qc

or this long:

AKfycbzxxxxxDE1-PGxxxxxFvpjrxxxxx2nTaxxxFwXxxxKMkxxxEq4

If it's the former, you need to disable the v8 engine before initialising. I also found that after disabling v8 I had to refresh the spreadsheet before reinitialising or it would still use the wrong URL. So the steps are:

1) Run that function

2) Check the length of the ID

3) If it's the shorter, disable the v8 runtime

4) Refresh the spreadsheet

5) Delete all webhooks

6) Initialize again

7) Run the above function and check it again

So that is thing one. Thing 2 is that the way the web app publishing works in the new editor is different from the legacy editor. I'd recommend first deploying using the legacy editor, then check that the ID in the web app URL is the same one showing up in the callback URL.

I had a discussion with Google the other day about how the new deployments work, you can read about it here:

https://issuetracker.google.com/issues/191196335

Each time you create a new deployment now it creates a new URL, but you can choose instead "Manage Deployments" and attach new code to your existing URL. It's a better system but somewhat more confusing and error prone than the old one when updating your Trellinator code.

Also note that as Google Apps Script deployment as started to become a bit more complicated have been working on building a hosted version of Trellinator that makes the deployment much simpler, called BenkoBot:

http://www.benkobot.com/

You can see a bunch of examples as well as a "crash course" on the community board here:

https://trello.com/b/IoHmhz5c/benkobot-community-board

Iain Dooley
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
June 25, 2021

@Tracy Garcia I just noticed you posted a question in the community board already and responded there :) Sorry I missed that before

Rosa Clark
Contributor
August 24, 2021

Hello, I REALLY wanted this to work for me!  I got stuck at: NB: There is a bug currently in Google Apps Script V8 runtime that returns the incorrect published web app URL, so even though you can switch to the V8 runtime later on, you need to disable the V8 runtime before you initialise Trellinator. You can track the issue here (and don't forget to "star" the issue so that Google is encouraged to fix it!) https://issuetracker.google.com/issues/184467246

I didn't know how to disable V8 so I continued with the instructions.  I never got the return message “Hi! I'm Trellinator”.  

Reading further down, no idea how to "Using your Trellinator Trello account, add your personal Trello account to both of these boards."

So I'm dead in the water! No luck.  If I could get an explanation on how to solve those two issues, I'd like to give this another go.  Thanks for creating this feature for us.  

 

Rosa

Iain Dooley
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
August 25, 2021

Hi @Rosa Clark it actually has gotten worse, you need to switch to the legacy editor as well as disabling the v8 runtime before it will deploy the correct URL:

https://issuetracker.google.com/issues/193095356

Since things have gotten pretty dicey with GAS we have been focusing more on developing our commercial Trellinator hosting solution, called BenkoBot:

https://app.benkobot.com/

It's much easier to setup, and we're currently working on scheduled actions and global command groups which are the only two major features missing compared with running it in GAS.

Sorry :( You can definitely still get it to work with GAS (I not only have multiple clients still using GAS but also set up new ones) but it's pretty tricky.

Dmitriy Rudakov November 9, 2021

Hello everyone!

 

I'm going step by step in instruction Hello world, but have stopped in 22 step http://docs.trellinator.com/trellinator_hello_world.pdf

the menu doesn't appear after updating spreadsheet, if I go to the script and try to start function init forcely, I get mistake with require "ReferenceError: require is not defined" in Murphy-tests modules. What should I do with that?

Iain Dooley
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
November 11, 2021

@Dmitriy Rudakov hey there, it sounds like you've pushed all the nodejs code to google apps script. That means the claspignore file isn't correct, are you using trellinator push rather than clasp push? trellinator push first assembles a .claspignore file to include only the relevant project files.

BTW the Google Apps Script deployment environment is becoming more tricky over time, we have a new hosted version that has some performance improvements as well as being easier to deploy, you might like to try it out:

https://app.benkobot.com/

there are examples and some docs here, it's the same basic Trellinator framework but doesn't run under apps script:

https://trello.com/b/IoHmhz5c/benkobot-community-board

It also has github integration for version control, so you can still write code and test it on the command line using the same process described in the hello world pdf.

Dmitriy Rudakov November 11, 2021

Oh, yes, sorry, I made mistake - "clasp push". But when I'm trying to "trellinator push" in bash, I got this "bash: trellinator: command not found".

May be I lost any steps in instruction about Trellinator push?

About Benkobot - thank you very much, I'm going to write some script, but first I,'m trying to  work with instuction)) 

Dmitriy Rudakov November 11, 2021

@Iain Dooley I need to get to Google spreadsheet the actions I do in Trello.

For example, I put the card to next list list and put new comment at list and automatically it comes to google spreadsheet list. It must happen like incoming actions at list Infolog but to separate columns like: "date time when happen", "board id", "old list id", "new id list", "card id", "due date", "new comment".

Can you direct me, which way must I move to find issue? I have got the quick start by Benko and did first steps to get actions from my Trello to list Infolog, but my pure knowledge does not allow me to understand, which script I can use at start for copy and rewrite)) Thank you!

Iain Dooley
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
November 12, 2021

@Dmitriy Rudakov it's pretty easy to write to a sheet from within GAS, you just do something like this:

SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Your Sheet").appendRow(["val1","val2","val3"]);
Dmitriy Rudakov November 12, 2021

@Iain Dooley thank you, I know this way to write manually row to table, but I mean the writing events from Trello, like it happens now at list Infolog in Spreadsheet

I do not ask to write for me in full, I just must understand the way to move. Which script in Trellinator's google sheet is responsible for the same task or something like this?

Thank you!

Iain Dooley
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
November 12, 2021

@Dmitriy Rudakov the full reference docs for Trellinator are available here:

http://docs.trellinator.com/

Alternatively if you are after someone to develop code for you, we can put you in touch with one of our vetted developers. Just email team@benkobot.com or submit a quote request at http://www.benkobot.com/

Matt Chambers March 2, 2023

Firstly thank you for producing this as open source... I've been following the tutorial for trellinator helloworld and can't get any output in the 'infolog' tab in sheets. I've been working on this for a couple of days now and was wondering if you could help please. 

Like Iain Dooley likes this
Iain Dooley
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
March 2, 2023

@Matt Chambers hey Matt, sorry I have just added this note to the top of the original article, I'm sorry you wasted your time trying to get it to work:

UPDATE 2023: Hi all, unfortunately changes in Google Apps Script have made it very difficult to register the webhooks we need to in order to run Trellinator. We were kind of keeping up with some workarounds for a while but recent changes in the editor have made even those workarounds untenable. We have developed a standalone alternative to run Trellinator code called BenkoBot, it's a paid service because we have to host and run all the code but you can set up an account and try your first command for free https://app.benkobot.com/ most of you will find that Trellinator in Google Apps Script still works for a while, but eventually it will stop working and we won't be able to fix it for you. All your Trellinator code can be ported to BenkoBot with minimal changes, and if you email team@benkoworks.com we can put you in touch with a developer experienced with those migrations. You can see some additional documentation on our community board https://trello.com/b/IoHmhz5c/benkobot-community-board

Sorry :(

Iain Dooley
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
March 2, 2023

@Matt Chambers note that the stuff in the helloworld PDF about using murphytest to run command line tests for your code still applies to BenkoBot, because it has a github integration so you can test code on the command line then push to github and deploy in BenkoBot. The setup for this is in the community board "Developer Challenge" document.

Matt Chambers March 2, 2023

Hey Iain, No worries it is what it is as they say and thanks for your prompt helpful support. THe original solution would have been perfect but back to the drawing-board. I was looking for database integration in order to send an automated client email when moving a card from a 'pending' list to a 'shipped' list. Is this a solution you could provide or know of any way, please?

Best Regards,

 

Matt

Rob Schaerer March 2, 2023

@Iain Dooley I'm curious as to what changes have occurred in Apps Script?  I have another solution in place and currently functioning in Apps Script and receiving webhooks without an issue but using google cloud functions -> Google's Pub/Sub in lieu of Amazon and it's been working just fine, but I'm guessing the issue is going to be in the average user setting it up or is there something happening behind the scenes that I might not be aware of?  

TAGS
AUG Leaders

Atlassian Community Events