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.

7 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).