This is a stripped-down version of a single section of Grok TiddlyWiki, optimized for fast loading and readability by search engines. Some features are missing.

For the full Grok TiddlyWiki experience, please visit the wiki version of this page.

Contact Tiddlers

 14th October 2024 at 7:05pm

The second tiddler type to consider is the contact. Let's create a contact and explore how we can organize contact information.

Creating a contact tiddler

Start by adding a link to a contact to your journal tiddler. As a reminder, to edit an existing tiddler, click the pencil icon in the upper-right corner of the tiddler.

Recall that to create a link, you surround the name of the tiddler you want to link to with [[double square brackets]], or, if you've turned on the appropriate option, write the text in CamelCase. Since we turned on this option and I like CamelCase for personal notes for its simplicity of use, we'll try that. (Note that JaneDoe doesn't appear as a link in the following live example, because this book's wiki has CamelCase linking turned off – but it will when you paste it into your own wiki, because we turned it on there.)

!! Journal

JaneDoe welcomed me to the company and helped me set up my computer and employee profile.

Journal

JaneDoe welcomed me to the company and helped me set up my computer and employee profile.

When you type or paste this into your journal tiddler, if you have the live preview open you'll see the text JaneDoe immediately change color to indicate a link. It will be in italics, which indicates the tiddler doesn't yet exist. Let's click the link to open the nonexistent tiddler, then click the edit button to create it.

We'll want to tag our contacts Contact, so go ahead and click in the Tag name box under the title, type Contact, and press Enter. A Contact tag pill will appear. Notice the drop-down menu that allows you to select an existing tag; you can continue typing to filter the list of tags, and use the up and down arrow keys and the Enter key to pick a tag from the list.

We don't necessarily even have to add any content to Jane's tiddler. Maybe to start with, we just want to let TiddlyWiki know that Jane is a contact. So let's save the tiddler; either use the check icon again, or press Control+Enter (if you don't learn any other keyboard shortcuts, this is a really helpful one). If you look back up at the journal tiddler, you'll see that JaneDoe is no longer in italics, meaning that tiddler now exists.

(There is a bug in TiddlyWiki 5.3.5 that can cause italics to not be immediately removed from newly created tiddlers. If this happens, closing and reopening the tiddler should resolve the issue. Hopefully this will be fixed soon!)

Finding what Jane is involved in

Let's imagine that, a week into your new job, you remember that you did something important with Jane in your action-packed first couple of days, but you can't for the life of you remember what or on which day. How do you figure out where that information went?

Since TiddlyWiki keeps track of backlinks, as long as we remembered to link to JaneDoe rather than just saying plain old “Jane Doe,” we can easily find everywhere we mentioned Jane. Click on the info button on the JaneDoe tiddler, then the Backlinks tab, and voilà, you'll see the journal tiddler show up, with a link directly to it. (If you don't see the info button, look in the menu under the more button ; we made the info button show directly on the view toolbar in Tweaking Your Settings.)

Because of this linking functionality, it's a smart idea to always link to people's names in your notes when you mention them, unless you explicitly don't want to find that mention of them when looking them up. The same goes for meetings, software applications, or any other concepts you might plausibly want to find mentions of. You don't need to actually create a tiddler for the concept for this to work – you can get the backlinks even of a nonexistent tiddler.

You might be wondering why you wouldn't just search for the name of the person, application, or concept to find mentions of it. You certainly could, but unless the name of the concept is extremely unusual and there's only one form of the name, search is subject to both false positives (places where you used the word “Jane” but weren't talking about Jane Doe) and false negatives (places where you called Jane by a nickname, so they don't show up in the search). Explicitly created links never get missed, and they're only spurious if you were mistaken when you added them, so if you create the links yourself, you can be assured your lists are exactly correct, making later searches much more efficient.

Adding some information about Jane

We said back in our requirements that we wanted to keep track of some information about Jane, not just be able to look up places we talked about her. Here's what I wrote:

Keep track of people we meet, their contact information, their managers, anyone else at the company they're related to, what they do, and what projects they're involved in.

We've already satisfied “keep track of people we meet” by mentioning Jane in our journal and creating a tiddler for her, and we'll satisfy “what projects they're involved in” by linking to Jane's tiddler from the relevant projects, once we create them. For “what they do,” let's put a brief description of Jane and her role in the company in the text of the tiddler:

Jane works in the HR department managing the employee information system and onboarding new hires.

Easy enough, but hold up just a second – are there other things we might want to link to? TiddlyWiki's power is directly proportional to the amount of care you put into linking together and otherwise relating ideas, so it's worth being thoughtful here.

I see at least two distinct concepts here that we might want to keep notes on, the HR department and the employee information system. You could argue that the onboarding process for this company is a concept as well. It's up to you whether these are ideas you'll want to keep track of, but if they are, you'll want to link to them. (This is one case where it's not so effective to create structure retroactively once you decide you need it: if you've created fifteen tiddlers that refer to the employee information system without calling it out as a concept, you have to go back and relink all of them once you realize they should be related. Further, you quite likely didn't use the same words to refer to the system in every case, so a search might not be that effective at finding all the instances. You may not even know it would be useful to have these relationships unless you've been linking as you go along!)

For our purposes, let's say we don't really care about keeping track of every note that discusses the HR department, nor about keeping notes about the department itself, so we'll leave that one off. However, the employee information system is probably going to be important, so let's link that one up by putting it in CamelCase.

Jane works in the HR department managing the EmployeeInformationSystem and onboarding new hires.

You'll notice the link is in italics again since we haven't created the tiddler. It's up to you how fussy you want to be about creating tiddlers once you link to them. Many people like to leave them missing, and add content only when they have some content to put in them. Others prefer to create them immediately with some dummy content, or no content, so that it's more obvious if they misspell a concept the second time (if it shows up missing and it's something you think you would have referred to previously, that's a red flag). Personally, I generally create missing tiddlers once I know some tags that apply to them (e.g., Jane is a Contact), or once I have some useful content to put in them.

One more thing here: you might notice that I didn't link to JaneDoe, I just wrote “Jane,” even though I said just a little while ago that it was best practice to always link to contacts. That's because it's a pet peeve of mine to see a link to the current tiddler within that tiddler (since you're already there, if you click on it, nothing happens). So this is the one exception. If you're not as fussy as I am, you might just make it a habit to always link.

Adding fields

There were a couple more pieces of information about Jane we wanted to keep track of:

  • contact information
  • relationships to other people at the company – manager and family

Since this is a textbook example, let's keep life simple and say that at our company, email address and company phone number are the only contact information we need to know. We'll also consider only one type of “family relation,” whether it's the person's spouse, child, or third cousin twice removed.

We could just write this information in the text of the tiddler. However, as we create more contacts, it's likely we'd end up doing that in a slightly different way on each contact's tiddler. As a result, if we later decided we wanted to get a list of all the phone numbers of our contacts, we'd have to go through and pick them out manually. If we instead put each piece of information in a separate field, we can easily search on or reference just that information from elsewhere in the wiki – for instance, we could find everyone whose phone number starts with the area code 612, or create a table of all our contacts and their email addresses. You'll see much more on this later.

So let's create some fields. We can map the information onto fields this way:

NameValue
emailjanedoe@company.com
phone888-555-1234
managerChrisSmith
familyJohnDoe EmilyDoe

To actually add the fields, look under the text of the tiddler where it says Add a new field, fill in the field name and field value textboxes as appropriate, and click the add button or press the Enter key.

A couple of notes about fields:

  • We'll want to be sure we use the same field names on every contact tiddler, or else we won't be able to cross-reference the values across different tiddlers. The drop-down for field name will show the names you've used in the past to reduce the chances of misremembering what you called it. Like tiddler names, field names are case-sensitive.
  • Similarly, it's a good idea to be sure to use a consistent format across all tiddlers. For instance, for the phone number, decide that you use the nnn-nnn-nnnn format, rather than nnnnnnnnnn or (nnn) nnn-nnnn, and then use that across all contact tiddlers.
  • The family field is an example of a tiddler list (or just list), which consists of tiddler names separated by spaces. If your tiddler names have spaces in them, you put each tiddler name in double square brackets as if it were a link: [[John Doe]] [[Emily Doe]]. TiddlyWiki understands that lists are a series of separate tiddler names and can work with the values individually. We'll learn more about lists in the next chapter.
  • Field names conventionally contain only lowercase letters and hyphens (-). (Once upon a time, other characters were entirely disallowed.) Unless you have a good reason to do something else, it makes sense to follow this convention; aside from it being common practice, this draws a clear distinction between tiddler names (usually capitalized) and field names (usually lowercase), and any filters you write will be cleaner.

Go ahead and save the JaneDoe tiddler. You'll see that your custom fields don't show up anywhere on the tiddler itself, but if you click the info button and then the Fields tab, they'll appear there.

Outstanding issues

You've probably noticed there are some annoying things about our implementation of contacts. These include:

  1. You can't see the fields with Jane's contact information on the tiddler. Having to click the info button and then the Fields tab just to see Jane's phone number might annoy you. We'll solve this in an exercise in chapter 4.
  2. Further, the people in the family and manager fields shown in the info area aren't linked, so you'd have to go search for them if you wanted more information. The exercise mentioned in #1 will solve this issue too.
  3. You have to remember to add the fields every time you create a contact, and there is no prompting about what information to include in the field. We'll discuss how to create custom buttons that create tiddlers with prefilled fields in chapter 6.

For now, we have a working if suboptimal implementation of contacts, so let's proceed to creating some more tiddler types.

Takeaways

Takeaways are not available in the static version of Grok TiddlyWiki. Visit the wiki version of this page to study takeaways.

↑ 1: The Shape of TiddlyWiki