[Tutorial] Add to multiple inboxes! via any voice assistant! [IFTTT Webhooks]

Today I decided to clean my garage. I have 20 empty boxes, numbered 1 thru 20. I want to remember whats in what box, but without effort. I plugged a Google Home Mini in to be my assistant. Of course since I’m using IFTTT, any assistant service like Alexa would work too.

My method of inventory is to log a list I can search. The final, permanant form would look like this:

  • scuba gear in box 3
  • basketball in box 11
  • scuba snorkel wetsuit in box 4

There will be absolutely no editing or organization. I will simply search a keyword and read the last item, to see the latest location of items. I’m a big beleiver in minimum effort for maximum benefit.

Now, the nice thing about “multiple inboxes” is you can redo this tutorial as many times as you like, for “ok google shopping mayonnaise” or whatever. No more grabbing the phone or computer, just add whatevers on your mind to the correct place by voice.

Let’s get to the tutorial. I just got this from the dynalist documention, but you might find screenshots easier to understand. Also the documentarion is missing token and a comma after the note, but whatever, I figured it out.

Before we start, you need to fill these variables into the code, which are secret strings of letters and numbers, unique to you and your documents and nodes:

{
  "token": "TOKEN",
  "file_id": "DOCID",
  "changes": [
    {
      "action": "insert",
      "parent_id": "NODEID",
      "index": -1,
      "content": "{{TextField}}",
      "checked": false
    }
  ]
}

token: get it from Login - Dynalist , it’s basically your username and password in gibberish form. Paste it where TOKEN is.

file_id: Zoom into the node that you want to add items to, and copy the file_id part from the address bar: https://dynalist.io/d/file_id#z=parent_id . Paste it where DOCID is.

parent_id: Same method as above but the parent_id part of the address. Paste it where NODEID is.

content: Skip this for now. You’ll get this later on by clicking the Add Ingredient button in IFTTT after you paste the code in. For Google Assistant users it’s just going to be {{TextField}}

Now that you have the code written somewhere, we can start. Sign in to ifttt.com and click Create at the top.

image

https://dynalist.io/api/v1/doc/edit

You’re done. Say aloud “add inventory test 123” and it should appear in the correct place in less than 1 second.

11 Likes

Thanks. Saying “add” didn’t work for me. I had to just say “inventory test 123.” Great tutorial.

Now that IFTTT Pro is out you can make this even more powerful. Here’s the code to add todays date to an input: Use date picker in the API via voice (IFTTT Pro)

1 Like

This is insanely usefull. Even though it only works in some languages.

1 Like

If you want to take this further and have IFTTT Pro, they have a new recipe feature called a “filter” which lets you transform data with javascript as it flows thru your recipe.

Here is the code I use to transform the word “tomorrow” in the notes I add to dynalist into the ! formatted date for tomorrow, as it flows via voice into my Google Assistant. Sorry if that’s confusing, just providing some inspiration here:

let today = (new Date(Date.now() - (60000 * 8 * 60) + (60000 * 24 * 60))).toISOString().slice(0, 10);

let varText = GoogleAssistant.voiceTriggerWithOneTextIngredient.TextField + ' !(' + today + ')';

let varBody = '{"token":"doooooooooooooongs","content":"' + varText + '"}';

MakerWebhooks.makeWebRequest.setBody(varBody);

This all is really great but Google Assistant interrupting you when you do even a slight pause while speaking out your note :man_facepalming:t2: … What is your recommendation on that?

Google Assistant interprets ~1-2 seconds silence as End of Command. There’s no way to change that as far as I know. They have to balance simplicity with speed.

You either need to repeat the command, or say a filler every second - “uh”, “erm”, “um”. Google automatically ignores fillers but it does extend the time while you think of what to say.

If you want to dictate using Google speech recognition without any timeouts, these are the 3 options I’ve found:

There is also the Dictate button on Macbooks, but it times out with silences too.

1 Like

Thanks a lot. I will try these methods out.

1 Like

Thanks for sharing. Sounds like it’s such a simple hack in hindsight. I can’t believe I didn’t come up with it myself. Seems like it will take a few hours to get used to. I will see how it goes.

Hi @BigChungus, I’m wondering how I can make this work by typing text in a field and send it to specific locations inside dynalist?

How it would work: I tap an icon on my Android homescreen -> text field appears -> I type text into it -> the text is stored at desired location inside Dynalist.

I would like to have several icons on my homescreen for sending texts into specified locations inside Dynalist.

I used to do this with Quick Dynalist on my Samsung Galaxy S9, but since I have upgraded to S20+ recently, Quick Dynalist has not been working (due to the wellknown sync issue).

“parent_id” tells it which node to send it to in dynalist

Yes sure. I want to type out the test string instead of speaking out the string to google assistant.

thats fine

you can use IFTTT directly if you have android

use IFTTT Note as the input instead of google

Okay, I tried this. I believe I’m doing everything correctly.

Still I’m not getting the text inside Dynalist.


I changed {{TextField}} to {{NoteText}}. And I tried with all three options in the Content Type
image

Also, there is another action field called Additional Headers
image
Should I do anything about it?

Tried using the IFTTT Note with Gmail to send email to myself and it worked. Not sure why it isn’t working with Webhooks for Dynalist.

If you have mac or linux you can test your webhook with curl

TOKEN="sfdgkljdsflkgjdsflg"

CONTENT="blah"

curl --header "Content-Type: application/json" \
  --request POST \
  --data "{\"token\":\"${TOKEN}\",\"content\":\"${CONTENT}\"}" \
  https://dynalist.io/api/v1/inbox/add

I have Windows.

Its working now! Not sure what changed. I think I was skipping the node part because I wanted to paste into the main document. Also I was using a version of this app on IFTTT that I had created few months ago for google assistant. So that was probably the issue.

Thanks!

By the way what should I change in the script if I would like to write inside a document and not inside a node?

I have tried inputting
“parent_id”:"",
and
“parent_id”=false,
and
“parent_id”=null,

but none has worked.

If the document is your inbox you could change it to https://dynalist.io/api/v1/inbox/add

otherwise idk

maybe the docs have clues https://apidocs.dynalist.io/#make-change-to-the-content-of-a-document

I tried with https://dynalist.io/api/v1/inbox/add as the URL. It is just posting blank new lines into my inbox.

Update:
Got it. I succedded with the following:

{
“token”: “XXXXXX”,
“index”: -1,
“content”: “{{NoteText}}”,
“checked”: false
}