Frequently asked questions

General Questions

Yes! Package Tracker is designed for team usage. Simply share your API Key with your team. You can change your key anytime you'd like, which is useful when teammembers leave.

Please note that if you're using Google Sheets, the Sheet owner may need to add the API Key.

Usage limits apply to the total number of packages you track per day, not just new additions. For example, if you're on the Startup Plan (100 packages) and already have 100 tracking numbers in a Google Sheet, you'll need to upgrade to add more.

We recommend deleting old tracking numbers since carriers reuse them, which can cause confusion when old numbers show new data.

Usage resets daily at midnight UTC. You can upgrade your plan anytime to increase your limits.

To change your email address, follow these steps:

  1. First, login with your old email address
  2. Click "My account" in the navigation
  3. Under the Subscription section, click "Manage subscription"
  4. In the Stripe customer portal, click "Update information" in the Billing Information section
  5. Update the email address to your new email address
  6. Now that Stripe is updated, you can logout of Hello Package and login under your new email address

The following columns are available for package tracking:

Basic Information
• Tracking Number
• Status
• Provider
• Date
• Delivered
• URL
• Expected
Package Details
• Weight
• Shipment Weight
• Service
• Packaging
• Pieces
• Signature
• Left At
• Reference
Location Information
• Location
• City
• State
• Zip
• Country
• Country_Code
• Customs Delay
Origin Details
• Origin
• Origin.City
• Origin.State
• Origin.Zip
• Origin.Country
• Origin.Country_Code
Destination Details
• Destination
• Destination.City
• Destination.State
• Destination.Zip
• Destination.Country
• Destination.Country_Code

DHL is a special case and requires a DHL:: prefix. For Blue Dart tracking numbers, you must also add the DHL:: prefix.

If your tracking number is 1234567 you'd instead use DHL::1234567

Google Sheets

With your tracking number in cell B2, you can call the =track() function like this:

=track(B2, "status,provider,date,location,delivered,url,expected", false, $A$1)

If you know the carrier's name, we highly recommend prepending the carrier to the tracking number. By doing this, it tells us to only retrieve results from that carrier. This will result in a much faster response time:

DHL::1234567
Morocco Post::1234567

DHL numbers MUST start with the DHL:: prefix.

The second argument in the =track() formula is a comma-separated string of the column(s) you want returned. Please see the "General" section of this FAQ page for a full list of the available columns. You can also specify a cell range with the column names:

=track(B2, $C$1:$H$1, false, $A$1)

The third argument is whether to return the full history (true or false).

The fourth argument, $A$1, is optional and allows you to refresh the function (for details, please see the next topic: "How do I refresh the status?").

Google Sheets doesn't let you automatically refresh custom functions. However, there is a workaround that allows you to refresh a function on-demand. Anytime the arguments to a custom function change, the function will update. By appending a cell reference as the last argument to a function, you can update the status by changing the value of that cell.

=track(B2, "status,date", false, $A$1)

When the value in $A$1 changes, the formula will refresh. We chose $A$1 but you can choose any cell you'd like.

If you have installed the Package Tracker Add-on and still receive this error, it likely means you are using a shared Sheet. In that case, the owner of that shared Sheet will need to install and run the Add-on.

If you are a paid user, you can share your API Key with the owner of the Sheet. Alternatively, you can change the ownership of the Sheet to you.

In order to run custom functions, Google Sheets needs your explicit authorization. By opening up the side menu, we are able to perform this authorization.

Please note that the owner of the Sheet must be the one to perform the authorization. This means that if you are using a shared Sheet, you must either:

  1. Request the owner open the side menu
  2. Change the owner of the Sheet to you

Once you have opened the side menu, please refresh your formula by following the steps in "How do I refresh the status?"

=INDEX(track(B2,"status,date",true,$A$1),ROWS(track(B2,"status,date",true,$A$1)))

To get the second event, simply subtract 1:

=INDEX(track(B2,"status,date",true,$A$1),ROWS(track(B2,"status,date",true,$A$1))-1)

Every external request that gets made in Google Sheets goes through their proxy, which imposes limits on the number of external calls you can make. Your limit depends on your G Suite subscription. You can view your URL Fetch calls limit here.

If you encounter this error, you can do the following:

  1. Don't refresh your formulas as often.
  2. Look at some of your other Add-ons that might be making requests to external services since your limit is shared between all of your add-ons.
  3. Look at any scripts in your Sheets that call "UrlFetchApp". You can view the scripts used by your current Sheet under Extensions -> Apps Scripts. Repeat this step for each Sheet that you've used in the past 24 hours.
  4. Upgrade your G Suite account.
  5. Use our Excel Add-on. Excel doesn't use a proxy like Sheets does. If you don't have Excel, you can use their free version at office.com.

Google uses a proxy to fetch the data from our server and has very strict timeouts. If you are tracking a large number of packages you might encounter this error a lot.

In this case, please use our Excel Add-on. If you don't have Excel, you can use their free version at office.com.

If you have a function in a cell the function will get called - even if that cell or row is hidden.

If you'd like to call the function for a cell ONLY if it is visible, you can do the following (assuming your tracking number is in B3):

=if(subtotal(103,B3)=0,"hidden",track(B3,"status",false))

This can mean one (or both) of the following:

  1. The formula has spelling or other errors in it.
  2. Your Sheet has a non-English language setting. If that's the case, please replace commas with semi-colons ;
=track(B2; "status,location,date"; false; $A$1)

Microsoft Excel

With your tracking number in cell B2, you can call the =PACKAGE.TRACK() function like this:

=PACKAGE.TRACK(B2, "status,provider,date,location,delivered,url,expected", false)

If you know the carrier's name, we highly recommend prepending the carrier to the tracking number. By doing this, it tells us to only retrieve results from that carrier. This will result in a much faster response time:

DHL::1234567
Morocco Post::1234567

DHL numbers MUST start with the DHL:: prefix.

The second argument in the =PACKAGE.TRACK() formula is a comma-separated string of the column(s) you want returned. Please see the "General" section of this FAQ page for a full list of the available columns. You can also specify a cell range with the column names:

=PACKAGE.TRACK(B2, $C$1:$H$1, false)

The third argument is whether to return the full history (true or false).

Slack

Please see our comprehensive guide for tracking packages in Slack

SStripe

Stripe specific FAQs will be added here.