Programmatically specifying pathauto alias I am working on a custom module to specify the pathauto alias of a new node, based on taxonomy terms that a user sets when they create the node. For instance, for my blog post content type, the alias would be auto-generated as /blogs/this-is-a-new-blog-post. However, if the category taxonomy is set to be special-project, I want to change the alias to be /special-project/blog/this-is-a-new-blog-post.

I'm able to load the node using hook_entity_insert(). However, I haven't been able to figure out how to set the alias. 

I've found examples of how to set the path when creating a new node, but I already have an existing node object in this hook. I've tried debugging the path from the entity using $entity-&gt;toUrl()-&gt;getInternalPath(), but that just gives me the default URL (/node/123), not the alias. Trying to debug $node-&gt;path, I get an enormous stdClass object that I can't really suss out. Trying to debug $node-&gt;path-&gt;alias using drupal_set_message("alias: " . $node-&gt;path-&gt;alias);, I get this: alias:.

How can I see and alter the path alias on an existing node?
Pathauto 8.x is already hooking into the hook_entity_$CRUD_OP() hooks of D8 to do its work. Thus, trying to do this via a hook_entity_insert() means your module hook might fire before/after pathauto has set its alias (depending on module weight).

Instead of doing this, you should use the API functions of pathauto to alter its behavior. For example, hook_pathauto_pattern_alter() or hook_pathauto_alias_alter() will let you alter the pattern/alias prior to generation/saving. 

See pathauto.api.php for more info.