Using the Roam JavaScript primitives I wrote yesterday it was extremely easy (less than 10 minutes, I think) to create a robust Browserflow flow for saving URLs to Roam Research.
Now when I’m browsing the web, I can press cmd-J (Browserflow’s keyboard shortcut) and choose “Roam: Save URL” from the typeahead to save the current URL to my Roam Daily Notes page.
If there’s not already a “Saved URLs:” block on daily notes, it makes it. Then it nests the URL beneath.
Here’s what the flow looks like in action:
Here’s what the flow itself looks like:
Notice there are really only two meaningful lines of code:
let urls = await getOrCreateBlockOnPage($page, 'Saved URLs:', -1);
await createChildBlock(urls, $url)
The first line creates the “Saved URLs:” block, but only if it doesn’t already exist. It returns the uid of that block. The second line saves the url. Nothing else to it!