Google Docs and Reference Manager

Citation Interface

The Zotero Connector adds a Zotero menu to the Google Docs interface:

 It also adds a toolbar button for one-click citin

It also adds a toolbar button for one-click citing:

 In the Zotero menu, you'll find the followin

In the Zotero menu, you'll find the following options:

Add/Edit Citation Add a new citation or edit an existing citation in your document at the cursor location. Add/Edit Bibliography Insert a bibliography at the cursor location or edit an existing bibliography. Preferences Open the Document Preferences window, e.g. to change the citation style. Refresh Refresh all citations and the bibliography, updating any item metadata that has changed in your Zotero library. Unlink Citations Unlink Zotero citations in the document by removing the field codes. This prevents any further automatic updates of the citations and bibliographies. Note that removing field codes is irreversible and should usually only be done in a final copy of your document.




MethodReturn typeBrief description
copy()DateReturns a detached, deep copy of the current element.
getAttributes()ObjectRetrieves the element’s attributes.
getDisplayText()StringReturns the display value that’s rendered in the document.
getLocale()StringReturns the date’s locale used for the display value.
getNextSibling()ElementRetrieves the element’s next sibling element.
getParent()ContainerElementRetrieves the element’s parent element.
getPreviousSibling()ElementRetrieves the element’s previous sibling element.
getTimestamp()DateReturns the timestamp associated with the date.
getType()ElementTypeRetrieves the element’s ElementType.
isAtDocumentEnd()BooleanDetermines whether the element is at the end of the Document.
merge()DateMerges the element with the preceding sibling of the same type.
removeFromParent()DateRemoves the element from its parent.
setAttributes(attributes)DateSets the element’s attributes.

Comparing IMPORTRANGE vs.

Below I have put together a comparison table that briefly explains the pros and cons of the use of IMPORTRANGE vs when connecting data between spreadsheets.
Small data volumesGreat!Great!
Big data volumesIMPORTRANGE may show errors or keep loading data for a long time.Great!
Frequency of updatesGreat! Almost in real-timeSupports manual (any time) and automatic data refresh: once per 1 hour, 3 hours, 6 hours, 12
Time to process calculationsIMPORTRANGE is a formula and it takes some time to process calculations which may slow down the general performance of a spreadsheet.No calculations are performed on the spreadsheet side. pulls the static data over to your worksheet.
Performance in spreadsheets heavily loaded by formulasIf the total number of formulas in a spreadsheet (including IMPORTRANGE) draws nearer to fifty, the loading speed and the general performance of the document will deteriorate.Great!It makes no difference for how many formulas you have in your spreadsheet. It will not slow down your worksheet.
Managing permissions / access to import dataGranting permissions is performed per every IMPORTRANGE formula separately, which makes it difficult to manage them in bulk.Great!Managing account connections is available under GSheets importer settings. So, you just create one connection and use it across the entire document.
Automatic backup of dataIMPORTRANGE syncs the data source and data destination sheets, showing the live data in the latter. So, once the information in the source disappears, it gets automatically removed from your destination sheet as well.Great! can automatically backup your data and keep it safe in a destination sheet.

Check out our Resources Page

Check out our resources page for the products and services we use every day to get things done or make our lives a little easier at the link below:

Link to the resources page

How to add footnotes in Google Docs using the mobile app

If you’re using the Google Docs mobile app for Android or iOS, adding footnotes is just as easy as it is on the web. 

The plus symbol takes you to the Insert menu.
Business Insider
1. 2.3.4.



NORMALEnumThe normal text alignment.
SUPERSCRIPTEnumThe superscript text alignment.
SUBSCRIPTEnumThe subscript text alignment.

How to Reuse Footnotes in Google Docs

You can reuse the same footnote multiple times around your document by using the copy-paste trick. 

Here are the steps for it: 

Select the word containing the footnote reference
Select the word containing the footnote reference

Step 1: Select a word that the footnote you want refers to, along with the word that follows it.

Copy the word containing the footnote reference
Copy the word containing the footnote reference

Step 2: Copy both the words. 

Your footnote is automatically added
Your footnote is automatically added

Step 3: Paste them anywhere in your document. The footnote reference will automatically get added at the bottom of the document. 

Step 4: This will allow you to reuse the footnote (as many times as you need) while the original one will remain the same. Google Docs will automatically adjust the footnote number accordingly. 


Example 1: Extracting all the quoted speech text from a story

In this example, we want to extract all the quoted speech text from the following story.

We might want to use it for analysis in, say, a Google Sheet later.  For now, we will just log the results. Here is how we would run the getDocItems() function from our project:

//The chewy conversation

12345678910111213 //The chewy conversation function runsies ( ) {    const docID ="1EToW3zy_gz4fe2TBI4if6CJqib9P9wy1zqaXYitA96c" ;    const identifier ={      start : ` “` ,      start_include : false ,      end : ` ”` ,      end_include : false    } ;    let results =getDocItems ( docID , identifier ) ;       console . log ( results ) ; } ;

On line 3, we reference the document we want to search by providing the document ID.

Then on line 4, we create our object keys and values. I want to search by starting double quotation marks (we called them the 66ers when I was a kid). Now, if you simply type in a double quotation mark into the Google Apps Script editor, you may get a very plain non-directional version. This won’t help you search for anything. It needs to be exactly the same as the one in your Google Doc.

My recommendation is to then copy the starting quotation mark you want to search for in the Google Doc and paste it directly into the editor.

This will maintain the quotation direction keeping

This will maintain the quotation direction keeping it as a 66er (Do I sound old saying that? I feel I do).

So that’s the start key done. We don’t want our saved data to include quotation marks. We’ll remove them by making the start_include value equal false.

Next, we want to indicate what characters we want to stop our search on. Again we copy and paste the 99ers quotation marks from the text between the backtick and set the end_include also to false.

In our results variable (Line 10), we’ll then add our docID and Identifier constant to our getDocItems() function. This will return a list of all the speech in the text as an array.

We then simply console.log this at the end. You do much much more with the data, I am sure.

Logged result

1234567 Apr 17 , 2020 , 8 : 25 : 06 AM   Debug    [ 'So, kid. A pretty good rule of hoof is to don’t chew on things that the boss picks up. Unless it’s, you know food.' ,    'But how do I know if it’s not food if I don’t give it a try.' ,    'You, see,' ,    'Anything the boss puts in there is okay to chomp on. It’s pretty tasty too.' ,    'But don’t eat the trough,' ,    'You’re getting it, kid. You’re getting it!' ]

Let’s quickly run through two more examples now that we have the basics.

Example 2: Get all the data inside square brackets []

In this example, we want to find all the quoted costs in the travel blog to Ryudikkelf Spaceport (What?!). Take a look at the Google Doc below:

In the example above, we can see that the text we want is inside square brackets “[]”. We kinda like the brackets so we want them to be kept when we save the data in our array. Here is how we would set up our script:

Ryudikkelf Spaceport

12345678910111213 //Ryudikkelf Spaceport function runsies1 ( ) {    const docID ="1WBohLj01HF2slGfha43aCp57vO_0nipsLbdYKZ6zktQ" ;    const identifier ={      start : ` [ ` ,      start_include : true ,      end : ` ] ` ,      end_include : true    } ;    let results =getDocItems ( docID , identifier ) ;       console . log ( results ) ; } ;

Running this code will result in this array:


1234 Apr 17 , 2020 , 8 : 34 : 20 AM Debug    [ '[Salz food – $140IYNSK]' ,    '[Prettytoria 30min VR session – $90IYNSK]' ,    '[Gel Sandwich drinks – $60IYNSK]' ]

Example 3: Get location references for a mail merge

Imagine you have a document that you want to create multiple copies for. However, each copy has unique data in it like names, billing information, etc. Perhaps you want to set up a mail merge-type system for this.

You decide that you will identify each location that needs to change with double braces as the key for that location “{{ }}”. You could use getDocItems() to get these unique character sets and then find and replace them each time you duplicate a new document with Google Apps Script.

You would grab these key character sets the same way as the previous two examples. Take a look at the example Google Do below:

When we run the code, you will have a list of unique character sets you might want to connect to headers in a Google Sheet to create your ‘Mail Merge’.

Here’s the script:

Very important letter

12345678910111213 //Very Important Letter function runsies2 ( ) {    const docID ="1ReYneEMYpBlkgdjl8-KJWRemhQ7rQcbR_MFg6rpbDAQ" ;    const identifier ={      start : ` { { ` ,      start_include : true ,      end : ` } } ` ,      end_include : true    } ;    let results =getDocItems ( docID , identifier ) ;       console . log ( results ) ; } ;

This is what the list would look like:


12 Apr 17 , 2020 , 8 : 44 : 36 AM Debug    [ '{{Name}}' , '{{Address}}' , '{{Phone}}' , '{{Date}}' , '{{Day}}' ]

Looking to learn more about Google Apps Scripts in a more structured format? Udemy has some great courses that can get you from the basics to a real Google Apps Script pro!

Got a more specific problem you need help with, but don’t have the time to develop the skills? Fiverr’s your best bet to find a skilled Google Apps Script professional to solve your problem quickly and cheaply. *

*The above affiliate links have been carefully researched to get you to what you specifically need. If you decide to click on one of these links it will cost you just the same as going to the site. If you decide to sign up, I just get a little pocket money to help pay for the costs of running this website.

How to reference another spreadsheet (file) via is a tool that allows users to pull data from various sources, including other spreadsheets, CSV files, Airtable, and many more to Google Sheets, Excel, or BigQuery.

Sign up to and start your data integration journey by creating your first importer. Click the “Add importer” button, give a title to your importer and complete the three steps: source, destination, and schedule.


Choose Google Sheets as a source app from the list
  • Choose Google Sheets as a source app from the list.
  • Connect to your Google account or pick one from the drop down list if you’ve already connected some.
  • Select a file on your Google Drive to transfer data from.
  • Select one or several sheets to export data.
    • You can use this field to link data from multiple sheets with the same structure into one. Therefore, it is better to make sure that the column headers (its titles) are identical across all sheets that are going to be merged. Enter the titles of sheets to consolidate from a new line. 
  • Click “Jump to Destination Settings” if you’re okay that the entire data set will be imported from your sheet (s). However, you can choose a range in the spreadsheet you want to export data from, i.e. A1:Z9. To do this, click “Continue” and specify the range in the optional field.


Choose Google Sheets as the destination applicatio
  • Choose Google Sheets as the destination application you want to save data.
  • Connect to your Google account. 
  • Select a file on your Google Drive to transfer data to. 
  • Select an existing sheet, or enter a name to create a new one. 
  • If you want to change the first cell where to import your data range, specify your value in the Cell address field. The A1 cell is set by default. 
  • Choose the import mode for your data: you can replace your previous information or append new rows under the last imported entries.
Toggle on the Last updated column feature, if you
  • Toggle on the Last updated column feature, if you want to add a column to the spreadsheet with the information about the last date and time refresh.

You can run the import right away if you click “Save and Run“. If you want to automate data import on a schedule, toggle on the Automatic data refresh and customize the schedule.


Select Interval (from 15 minutes to every month)Se
  • Select Interval (from 15 minutes to every month)
  • Select Days of the week
  • Select Time preferences
  • Schedule Time zone

In the end, click “Save and Run” to run your first importer. 

Note: You can also use as a Google Sheets add-on to have faster access to the tool in your spreadsheet. For this install it from the Google Workspace Marketplace and set up as we described above.

How to add a footnote in Google Docs

You may manually add footnotes into a Google Doc on the web or in the mobile Google Docs apps.

While using Google Docs in a browser (Figure A):

1. Place your cursor at the point you want to add a footnote.2. Choose Insert | Footnote, or press Ctrl-Alt-F.3. Type your footnote text.

Figure A

In Google Docs in a browser, place your cursor at
In Google Docs in a browser, place your cursor at the point you want to add a footnote, then choose Insert | Footnote.

Within the Google Docs Android or iOS mobile apps (Figure B):

1. Tap to position your cursor where you want your footnote.2. Tap the + near the top of the screen to access the Insert menu.3. Scroll through the menu items that display, then tap on Footnote.4. Type your footnote text.

Figure B

In Google Docs on Android or iOS, tap the spot in
In Google Docs on Android or iOS, tap the spot in your text where you want to add a footnote, then tap the + at the top of the screen, then scroll down and tap Footnote.

More detailed instructions

Cross Reference is built around two concepts: labels and references.

A label is always unique and is associated with a single figure (or table etc.); this is usually represented by text such as figure 1 in the figure caption.

A reference is usually in the text, and refers to a labelled figure (or table etc.). There can be many references to a single labelled entity.

To refer to, say, a figure you must create a label for it, usually in the caption. Cross Reference uses hyperlinks to create labels. These have the following syntax: #figur_population. #figur is the built-in prefix used by Cross Reference; population in this case is your chosen name for the figure. Notice that the prefix uses figur rather than figure with an e — all prefixes in Cross Reference are composed of a hash and a five-letter code, and separated from the name with an underscore.

To create this label, you simply need to create some dummy text and add the link. You don’t need to add any numbering, as this is taken care of by Cross Reference. So in the caption you could add the word ‘figure’, highlight that word, goto ‘Tools->Insert link’ and add #figur_population as the URL. (The dummy text will replaced by the add-on, so don’t highlight text that you want to keep, such as other parts of the caption.)

You now have a label that can be referred to. Creating references is similar to creating labels. First, create some dummy text, such as the word ‘figure’ — so you might write something like “for an example of this phenomenon, see figure”. Again, you don’t need any numbering, as the add-on will take care of this. Now you need to apply another hyperlink, in this case to the word ‘figure’. Reference syntax, however, is slightly different; in our case, it will be #fig_population. This must be identical to the label hyperlink, except that the code is now fig not figur (reference codes always use the first three letters of the code used for labels.)

If you now goto the ‘Add-ons->Cross Reference->Update document’, your text should be replaced with a numbered label and a reference with the same number.

Because Cross Reference replaces your dummy text, you can use a short word or even one letter, and you can also use the Ctrl+K shortcut to add the link. These two additions to the process should make things quicker.

Gather Info Online with the Google Keep Chrome Extension

Just tap the Keep extension to save any page to yo
Just tap the Keep extension to save any page to your notes

You could have Google Keep open in one tab and copy and paste new ideas you find online into your notebooks. The better option, though, is to install the Google Keep Chrome Extension. Then, you can click on the extension to instantly save any web page to your Keep account.

Want to add more info? Click in the Keep popover to type a title and details for your note. You can also add a label to organize your notes. For example, I'm researching G Suite's backup options—so I'm labeling everything I find with G Suite to find it again easily.

Right-click to copy any text to Keep
Right-click to copy any text to Keep

Find something you want to quote? Select the text or image, then right-click and select Save selection to Keep. You'll get the same opportunity to add more details if you want.

Either way, your note will always include a link to the page you were on so you can easily cite it later.

Quoting books in your article or paper? If you've read them digitally via Kindle, you can view your highlights online at Find the book you read, select the quote you highlighted, then tap the Keep extension to save it along with the book's name to your notebook. Repeat that for each quote you want to use in your document, and you'll get a unique Keep note for each one that's easy to copy into your document.

Tip: The Google Keep extension will use the Google account you've used to log into Chrome. If you'd like to use a different G Suite account with Keep, tap your name in the top corner of Chrome and log in with your work or education G Suite account instead.


If you have any trouble citing in Google Docs, let us know in the Zotero Forums.

You should always troubleshoot with a copy of the original document, using File → “Make a copy…”. If something isn't working in a particular document, the document version history may allow you to revert to an earlier version. Some of the Debugging Broken Documents steps may also be useful in Google Docs.


Leave a Reply

Your email address will not be published.