Using Apple shortcuts to add notes to Tape

Hey everyone,

Here is a simple little productivity tip. Tape maximises the power of having everything in one seamless place and quick note-taking, whether on your desktop or mobile, can make all the difference.

For Apple users, here is a simple automation trick that can significantly speed up this process. If you’re on Android or Windows; there are equivalent solutions out there.

Here’s what you’ll need:

  1. An App for Note Storage
    Create one and customize it to your liking. Personally, you definitely don’t need all the fields I have:

  1. Setting up Webhooks
    Create an automation with 'When a webhook is received".

I have three quick entry types:

  • qn for notes
  • i for ideas
  • a for actions

The code snippet provided helps to process the note and extract any entry type specified at the start. If none is found, it defaults to QN.

const mn = jsonata('note').evaluate(webhook_payload_parsed);

if (mn.includes(" - ")) {
  var_note = mn.split("-")[1].trim();
  console.log(var_note);
  var_prefix = mn.split("-")[0].trim()
  console.log(var_prefix)
} else {
    var_note = mn
    var_prefix = "QN"
  console.log("String does not contain '-', so default used.");
}
  1. Creating an Apple Shortcut
    This is incredibly simple. Add an ā€˜Ask for’ field and then a ā€˜get the contents of URL’. Set them up as shown in the image below:

melotte.consulting 2023-10-25 at 18.34.30

You can trigger this shortcut via various methods on your iPhone; ā€˜Back Tap’ is particularly handy. I also have a keyboard shortcut on my Mac to launch it.

Pro tip for Mac users: Instead of hitting return, use [Command] + [Return] ⌘ + ↵ to close the window and send your note into Tape.

  1. Adding a Title
    While I prefer not to give my ā€˜quick notes’ a specific name, having a general idea can be helpful in the list view. Here’s a calculation field that takes the first 6 words from the note when a name isn’t available:
const d = date_fns_tz.format(@Created on, 'yyyy-MM-dd HH:mm')
const n = @Note.split(' ').slice(0, 6).join(' ');
if (@Name !=null && @Name !== "") {
@icon + @type + " - " + @Name + " - " + d;}
else
{ @icon + @type + " - " + n + " " + d;}

With this setup, once you’ve captured that ā€˜thought’ in Tape, the possibilities are endless. You can expand on it with AI, turn it into a task, or link it to a contact to name just a few.

8 Likes

Absolutely phenomenal @Jason - much appreciated!

1 Like

Exciting stuff @Jason - this looks really useful. :eyes:

Also a Mac user here, so I’ll roll out a variant of this - amazing! :rocket:

Very cool @Jason! Beats using the email to app triggered with an Apple shortcut.

2 Likes

Thanks @joelhall another one I quite like is scanning an NFC tag and sending the tag name and time of the scan.

1 Like

@Jason this is really awesome.
My shorcuts on mac in phone are already in full mode.
Thanks for sharing this with us :rocket::+1:

2 Likes

So I am setting up a new Siri Shortcut to get text data and select an option from a list (that will then be used to set a single select category field). I am getting the variables from the web hook successfully but can’t for the life of me get the ā€œTypeā€ variable to pass through when creating the record. For example, Siri Shortcut runs and I give name of note, details (both text), and then select from Menu the ā€œtypeā€ of record it is creating (which should tie back to the single select field). The text fields load successfully but I am missing something with trying to convert the type payload into a variable to be used.

Hi @joelhall

Are you trying to pass the ā€˜Type’ directly into a single select field with matching name? As I don’t think that works (at least I have never managed to) so I use conditional actions for example: if webhook type is a then set type field to a.

Does that make sense?

I’m on my phone so sorry if I’m not making sense :slight_smile:

Thanks @Jason yes that is exactly what I was trying to do. Glad I’m not going crazy that it didn’t work for me. Yes I think your proposed solution makes sense. Will give that a go, thank you!

1 Like

@joelhall
Definitely not going crazy I always feel like what you were trying to do should work and have spent a good amount of time myself trying to make it work :frowning:

Ok maybe I did go crazy. So the flow get’s the web hook payload, then I am doing a conditional create for each ā€œtypeā€ option that could be returned. I’m missing something with creating the variables for all three though I believe (putting text name and text details into record with variable from payload isn’t working either).