Workflow OOTB email showing localhost link for content



I am using OOTB email for workflow (checked email option in dynamic participant step). The email contains link to localhost:4502/bin/... and I want that link to point towards dev/ qa etc environments. I assume that the link is coming from 'Day CQ Link Externalizer' local property.

Screen Shot 2020-05-22 at 1.36.15 PM.png


After updating local value to author URL, it works fine but after each maven build the value in local gets overwritten. I have two issues here.

1. What's the actual meaning of having local here? Will it impact anything if I update it to author URL?

2. After each build, the local value gets overwritten to http://localhost:4502. I have file named '' under /apps/<my site>/ and same under etc. Even if I update the file, the changes in local field are not getting reflected in /system/console/configMgr and they are overwritten with localhost link.


The file content in '' is:

<?xml version="1.0" encoding="UTF-8"?>
jcr:primaryType="sling:OsgiConfig""[local http://localhost:4502,author <author URL to my site>,publish <publish URL to my site>]"""
EDIT 1: I am using AEM 6.5.
workflow workflow email workflow email notification

Accepted Solutions (1)

Accepted Solutions (1)




The local should always point to the instance. The reason is that AEM needs local for other internal operations.

The following mapping names are predefined and must always be set as AEM relies on them:
  • local - the local instance
  • author - the authoring system DNS
  • publish - the public facing website DNS

A custom configuration allows you to add a new category, such as "production," "staging," or even external non-AEM systems such as "my-internal-webservice" and is useful to avoid hardcoding such URLs across different places in a project's codebase.


To point to author url, you should use the author entry.


More information about it can be found here:


Hope it helps !! 🙂

Answers (1)

Answers (1)





you have to use Externalizer API for those links to convert based on osgi config.

Keep your config in the codebase. 

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="" xmlns:jcr=""
   jcr:primaryType="sling:OsgiConfig" "[local https://localhost:4502,author,publish]"/>



Java Code Example :

Externalizer externalizer = resolver.adaptTo(Externalizer.class);
            if (null != externalizer && StringUtils.isNotBlank(domain)) {
                if (ModeUtil.isAuthor()) {
                    externalLink = externalizer.authorLink(resolver, externalLink);
                } else {
                    externalLink = externalizer.externalLink(resolver, domain, externalLink);