Where are the folder locations in finder of other inboxes?

As I use Hazel rules, it is good to have an inbox folder as destination for DT3. As I use different databases for different needs, I would like to let Hazel place the files directly into specific inbox folders of databases.

  1. I was looking where to find the location of this specific inboxes, but wether here in forum, nor in help docs, I couldn’t figure this out. Don’t hope this means there is no chance to directly put it to inboxes of different databases?
  2. If it is possible to put files to different inbox folders, maybe there is even a chance to let it place to other folders in databases, too?

Some feedback would be great.


There was a thread a while back with somebody trying to figure internal paths to groups within databases in DT; I cannot for the life of me find it though. It wasn’t working as the user wanted anyway, and wasn’t looking for purely external paths IIRC… It is not recommended to alter the content of the database package directly. @chrillek posted a JS in 2020 which I think is aimed at doing what it is you are trying to do, though (that is, telling DT where to put the record).

The “intended” behaviour in DT3 is that files should arrive via the global inbox, though. From there DT can deal with the records using smart rules, moving that to other databases and/or groups automatically, as Hazel would. Hazel has a slightly more powerful set of rules; if you need those and therefore it is not an option for you to use smart rules in DT (unlikely…) then you have a few options:

  • use a script such as the one @chrillek provided (but AS can do much the same)
  • use Hazel to tag the files (e.g. Inbox2) and put them in the global inbox, and then use a smart rule in DT to move any records tagged that way to a destination of your choice in DT.
1 Like

In addition: I posted a longer and more capable script for the same task later:

Note that instead of using move, you might want to use import since move is currently not working as expected in JXA.

And you can, as @Blanc correctly said, do the same things in Applescript.

1 Like

The Global Inbox is actually two things:

A. A Finder folder.
B. A DEVONthink database which automatically pulls in every item that somehow gets into A.

What makes both A and B different to other folders and databases is that they are built in DEVONthink, and they both have fixed locations (in Application Support/DEVONthink 3) and names. And unlike other folders you would have to drag into the Finder sidebar DT has a menu item to move A there. While B does not have an Inbox itself because that would be redundant.

Besides from that it’s just a combo of a folder and a database. Meaning: You could create as many Finder folders as you want and have DEVONthink index them and add a simple Smart Rule to each which moves every item in these folders into a database—its Inbox or any of its groups.

This way you would get exactly what you were asking for. The question is if that is the best solution. In my opinion for the use case you described @Blanc’s and @chrillek’s suggestions are superior.

When you use Hazel to move your files they must have attributes which tell Hazel their intended location. If so they will tell DEVONthink’s Smart Rules too. Instead of creating Finder folders that mirror database locations like their Inboxes Hazel would just move everything into the Global Inbox and let DEVONthink do the sorting.

In a less automated use case on the other hand where the user often moves items to recurring locations manually it can be useful to create “special” Inboxes in the Finder. As they could be placed in the Finder sidebar, or the Dock, or the Desktop for easy access.

1 Like

Hi @Blanc, @chrillek and @suavito, thank you all so much for your clear and very detailed and explaining feedbacks. :pray:

This helped so much, there is not need for this folders. Whyever I never played with smart rules. It was just a minute to prepare the first one and it worked immediately. :sunglasses:


I use Hazel for this all the time. My Hazel rules look like this:

and the embedded script looks like this:

tell application id "DNtp"
	set img_ib to get record at "/Bills" in database "FileCabinet"
	import theFile to img_ib
end tell

where “Bills” is the group in my database named FileCabinet. Database inboxes can be handled just like any other group.

Even better is to use the group’s UUID, so that if you decide to change the name of the group, you don’t have to change the script. E.G.:

tell application id "DNtp"
	--set img_ib to get record at "/Investments" in database "FileCabinet"
	set img_ib to get record with uuid "893B5B25-C929-4659-BA14-XXXXXXXXXX"
	import theFile to img_ib
end tell

Thanks for sharing this as it’s a lightweight but effective approach that shows a script doesn’t have to be hundreds of lines long and hard to read. :slight_smile: