Recent Content
NEW Launching on Communities Aurora Session #2: Preparing to launch | Instructor Led-Training
We are excited to announce live training on Preparing to Launch in Khoros Communities Aurora are coming in February 2025! Wednesday, Feb 19, 2025 Early Session: 7 am CT / 1 pm UTC Late Session: 3 pm CT / 9pm UTC In today’s ever-changing digital world, customer engagement tools—most importantly, engagement communities—must evolve to retain and keep customers satisfied. Khoros Communities Aurora delivers a sleek, modern, and high-performance system that adheres to community best practices while still giving brands complete flexibility to make changes or updates to address their ongoing needs. In this session, focussed on the Kickoff and Discovery phase of the launch/upgrade process, you will learn about: The Discovery phase and project timeline General tasks to complete prior to and during the Discovery phase Internal resources your team needs to launch on Khoros Communities Whether you are preparing for your upgrade to or launch on Khoros Communities Aurora or simply learning more about the process, we are here to help. Missed the first session? Review the Q&A and access recording here.163Views1like0CommentsResolve ancestor path to names
Dear Community In my Bulk API response I get the field "node.ancestor_path" which looks for example like "/1/2/176/177/244/". I tried to use Community API to get the nodes for the path, however, I didn't succeed. I tried "SELECT * FROM node" and "SELECT * FROM boards" but I couldn't find any ID or field which seems to fit and resolves the path to a more meaningful name. What do I do wrong? How can I get the names?Solved269Views1like5CommentsLiQL to GraphQL example sets?
is there an example set of LiQL -> graphQL query conversions anywhere? For example, I use this LiQL query to pull the latest articles in my tkb: query = f"SELECT subject, view_href, body, labels FROM messages WHERE board.id = '{tkb}' ORDER BY manual_sort, post_time desc limit 4" response = k.query(query)49Views0likes1CommentAurora Analytics Metric Definitions
This article provides definitions for all the metrics available in Aurora Analytics. Aurora Analytics approximates user behavior and therefore these metrics exclude almost all nonhuman requests (Web crawlers, robots, RSS feeds, REST API calls). About how Community visit metrics are calculated When viewing visits metrics, you might see small variants in the reported numbers. This is expected when you compare visits metric for a period within a month versus a sum of months in that period. The main reasons for these differences include: Overlapping visits across months "Visits" are defined as the number of unique user sessions. A session is defined as a group of interactions one user takes within a given time frame. Sessions time out in the case of 30-minute inactivity. Assume someone browsed through a community during the last hour of a month (Month-1) and continued browsing through the first hour of next month (Month-2). In this scenario: When we measure visits for Month 1, this session is counted as 1 visit. When we measure visits for Month 2, this session is counted as 1 visit. So, when you sum up visits for Month 1 and Month 2, you see 2 total visits, whereas, if you measure visits over the 2-month period, this session is counted as a single visit. Algorithm approximation "Visits" and "visitors" metrics are an approximation algorithm in their calculations. As such, there might be a 1-2% variance in the calculations. Elastic search documentation mentions that sometimes the variance could be up to 6%. Aurora Analytics metrics and definitions Widget/Metrics Definition Page Views A page view is counted each time a browser requests a page regardless of the device type or whether the page is cached. Page Views approximate user behavior and therefore exclude non-human requests (web crawlers, bots, RSS feeds, REST API calls). Page Views (Trend graph) Page Views trend graph is a line graph that shows how the Page Views are trending for the selected time frame. Visits A visit is one or more page views over time by a uniquely identified visitor. A cookie set in the browser identifies visitors (anonymous or registered), so if a visitor has cookies turned off, each page view counts as a new visit. The visit counter increments as soon as the visitor views any community page; the visit ends after 30 minutes of inactivity. After the 30-minute timeout, the next page view counts as a new visit. The Mobile Visits metric is a subset of the Visits metric and includes requests from mobile web browsers only. Unique Visitors The number of unique visitors over the specified time interval. When a visitor (registered or anonymous) views a page, the application looks for a visitor cookie. If no cookie is found, a new cookie is created, and the visitor counts as a new unique visitor. If a visitor cookie is found, the Unique Visitor counter is not incremented. If cookies are cleared after a visit, the next visit sets a new cookie and counts a new unique visitor. Since cookies are browser dependent, so are unique visitors. Users who access the community from different browsers count as a unique visitor. The Mobile Unique Visitors metric is a subset of the Unique Visitors metric and includes visitors who used mobile web browsers only over the specified time interval. Page Views/Visit The average number of Page Views per Visit for the time frame selected. Visits vs. Unique Visitors The trend of the number of visits to the community site against the number of unique visitors for the selected time frame. Visits by User Type The number of visits made by anonymous users and signed-in users. Anonymous users also refer to community members who have not logged in. Learn more about Visits by User Type. Visit Referrals The number of community visits that originated from specific URL domains. This metric helps you understand how much traffic is coming in from different search engines, social networks, or links on your company website. Completed Registrations The number of member registrations completed during the selected time period (excludes partial/abandoned registrations). A registration is considered complete when the visitor finishes the sign-up flow and is given a unique user ID. If the visitor leaves the sign-up flow before being granted their unique user ID, the registration is considered to be abandoned, and the completed registration counter is not incremented. If the community uses Single Sign On (SSO), Khoros increments the completed registration count the first time it receives an authentication token that contains a unique User ID. Partial Registrations The number of user registrations abandoned during the selected time period. Completed and Partial Registrations The line graph shows how the completed and partial registrations are trending over the selected time frame. DAU/MAU DAU (Daily Active Users) is the number of unique members who engage (at least one page view) with the community in a one-day window. MAU (Monthly Active Users) is the number of unique members who engage (at least one page view) with the community over a month or 30-day window. The ratio of DAU to MAU is the proportion of monthly active members who engage with the community in a single day window. Member Time on Site The Member Time metric indicates the total number of minutes from first page request to last page request for each visit of all registered members in your community during the date range of the report. Member time does not capture the time of actions, such as likes, unless the member requests a new page after the action. Nor does it include the last 30 minutes after the last page request before the session times out. Member time is calculated from the time of the first page request, such that a session that started at 11:50pm on day 1 and ending at 12:15am on day 2 is counted as member time for day 1. New vs. Returning Members New members are members who have never visited the community and are visiting for the first time. Returning members are members who have visited the community before. This line graph shows the trend of new and returning members over the selected time frame. Note that this widget will show data for the last 30 days only, irrespective of the selected date range. Depending on the time range you choose in the dashboard settings, you may get partial data or no data. New vs. Returning Anonymous Users When a user views the community without signing in, the community looks for cookies saved on their device. If there is no cookie present, then the user is treated as a New Anonymous User. If cookies are present, then the user is treated as a Returning Anonymous User. Since members can also view the community without signing in, they are also considered Anonymous. Note that this widget will show data for the last 30 days only, irrespective of the selected date range. Depending on the time range you choose in the dashboard settings, you may get partial data or no data. Forum This widget shows the engagement on the selected Place for the date range selected. Shows the number and trend line of the number of discussions created, number of likes received, number of replies for the time frame and selected Place. Click View Details for further insights. Blog This widget shows the engagement on the selected Blog for the date range selected. Shows the number and trend line of the number of posts created, number of likes received, and the number of comments for the time frame and selected Place. Click View Details for further insights. Knowledge Base This widget shows the engagement on the selected Knowledge Base for the date range selected. Shows the number and trend line of the number of articles created, number of likes received, and the number of comments for the time frame and selected Place. Click View Details for further insights. Places - Follows The total number of followers for the selected Place. Topics - Follows The total number of followers for the selected Content. Observing vs. Participating vs. Contributing This widget shows the engagement between members who are observing, participating and contributing in the community for the place and time frame selected. Observing members are those who have signed into the community and their engagement is limited only to viewing the contents. Participating members are those who reply or like posts in the community. Contributing members are those who create content or provide solutions in the community. Private Messages This widget shows the number of private messages sent, its trend line and the messages per conversation in the community for the time frame selected. Messages sent The number of private messages sent from the inbox by all the community members during the selected time frame. Messages sent (trend graph) The trend line graph showing the number of private messages sent from the inbox by all the community members during the selected time period. Discussions The number of Discussions in the selected Place during the selected time frame. Likes The number of likes received for the Discussions and replies in the selected Place during the selected time frame. Replies The number of replies received for the Discussions in the selected Place during the selected time frame. Engagement Shows the trend line for number of Discussions, likes, and replies in the Place during the selected time period in Forums Details. Shows the trend line for number of Blog posts, likes, and comments in the Place during the selected time period in Blogs Details. Shows the trend line for number of articles, likes, and replies in the Place during the selected time period in Knowledge Base Details. Shows the trend line for number of ideas, votes, and comments in the Place during the selected time period in Ideas Board Details. Time to First Reply The time taken (average) for Discussions in the selected Place to receive its first reply after it has been initially submitted. It is typically measured from the moment the Discussion is published to the moment someone replies to it. First Replies The total number of first comments on all the Discussions in the selected Place during the selected time frame. If for the selected time frame there are 10 Discussions in the selected Place, and only 4 have received a reply, then the total number of first replies is 4. If for the selected time frame there are 10 Discussions in the selected Place and only 1 Discussion has replies, even if that one Discussion has 5 total replies, the First Replies is 1. Marked As Solved The number of Discussion replies that are marked as an accepted solution for the selected Place and for the selected time frame. There is only 1 solution per Discussion. Marked As Solved Trend Shows the trend line for the number of replies that are marked as an accepted solution for the forums in the selected Place and for the selected time frame. Solutions Authored The number of solutions the member provided for a discussion Time to Solution The average time taken for the replies in Discussions for the selected Place to be marked as an accepted solution. It is measured from the moment the Discussion is posted until one of its replies is marked as an accepted solution. Solution Views A count of page views of Discussions with an accepted solution after the Discussion has had a reply marked as an accepted solution. Forum - Follows The total number of followers for the selected Forum during the time frame selected. Discussions - Follows The total number of followers for the Discussions in the selected Place during the time frame selected. New and Trending Discussions The total number of new Discussions and trending Discussions in the Forum selected during the selected time frame. The metric values for Trending Discussions depends on the minimum number of views set in the Engagement dashboard settings. Posts The number of blog posts in the selected Place during the selected time frame. Comments (for Blogs and Ideas) The number of comments the blog posts or Ideas in the selected Place received during the selected time frame. Articles The number of Knowledge Base articles in the selected Place during the selected time frame. Blog - Follows The total number of followers for the Blog in the selected Place during the time frame selected. Posts - Follows The total number of followers for the Blog posts in the selected Place during the time frame selected. Knowledge Base - Follows The total number of followers for the Knowledge Bases in the selected Place during the time frame selected. Article - Follows The total number of followers for the Knowledge Bases articles in the selected Place during the time frame selected. TTFR Time to First Reply TTFS Time to First Solution Helpful Votes The number of votes the Knowledge Base board or article received stating that they were helpful. Unhelpful Votes The number of votes the Knowledge Base board or article received stating that they were unhelpful. Members Joined The number of members who joined the Group. Members Left The number of members who left the Group. Invitations Sent The number of invitations sent to members to join the Group. Invitations Accepted The number of invitations that were accepted by members to join the Group. Ideas Snapshot (widget) This widget contains the metrics related to Ideas Board. The metrics are number of ideas, number of comments received, number of votes received during the selected time period for the Place selected. Ideas (Groups, Events and Members reports) Total number of ideas created during the selected time period for the selected Place. Votes Total number of votes received during the selected time period for the selected Place. Idea Votes (Members report) Total number of votes given by members during the selected time period for the selected Place. Idea Votes Given (Members report) Total number of votes given by members during the selected time period for the selected Place. Idea Votes Received (Members report) Total number of votes given to the member's ideas during the selected time period for the selected Place. Closed Total number of ideas closed during the selected time period for the selected Place. Completed Total number of ideas completed during the selected time period for the selected Place. Events (Groups, Events, and Members reports) The number of events in the selected Place during the selected time frame. RSVP-Attending (Groups, Events and Members reports) The number of members who RSVP'd 'yes' to the events in the selected Place during the selected time frame. RSVP-Interested (Groups, Events, and Members reports) The number of members who RSVP'd 'Interested' to the events in the selected Place during the selected time frame. Attended The number of members who attended the events in the selected Place during the selected time frame. Events Attendance (Members report) The number of members who attended the events in Groups for selected Place during the selected time frame. Events Attended (Members report) The number of events the member attended during the selected time frame. Events by type (widget) This widget shows engagement on events based on the event type (In-person, Online, and Hybrid). Lead-up to the Event (widget) This widget shows metrics on all the activities that occurred on the event before it started. Note: In Classic Analytics, a summation of all posts in the community (root topics and replies across discussion styles) is presented as the Posts metric in the Categories report. However, in Aurora Analytics, the root topics and replies across content types (Forums, KB, Blog, Ideas, and Events) are presented as specific/independent metrics, instead of adding them together and presenting as the Posts metric. Related topics: About Aurora Analytics Dashboard Settings Aurora Analytics Reports790Views3likes4CommentsAurora: Reverse proxy Best Practices
During pre-sales and launch, our customers often ask us about reverse proxy and vanity URLs. The question usually spawns from branding and search engine optimization (SEO) concerns. Some customers have corporate rules around aggregating all traffic for their domain. Branding, SEO, and corporate guidelines are all reasonable business considerations. In a branding-motivated scenario, a customer may want to use a subdirectory of the customer’s website, such as www.customer_name.com/community instead of our standard subdomain structure community.customer_name.com. With regard to SEO, you can find many articles that discuss how subdomains affect search engine optimization. The tricky part is determining whether the SEO benefit of a subdirectory structure is offset by latency potentially introduced with a reverse proxy. Khoros requires that any customer use of a reverse proxy be implemented in accordance with the appropriate implementation process specified by Khoros and set forth in the Statement of Work (SOW) that Khoros provides. The SOW sets out the process and important information that must be provided to support such implementation. Note: If you are using the Khoros Care with your Community, you also need to ensure that Care is able to communicate through the reverse proxy to Community in both stage and production. If you have IP address restrictions or other access restrictions for your reverse proxy, this might prevent integrations between Community and Care from operating correctly. What is a reverse proxy? In a reverse proxy implementation, community members do not access the community by directly connecting to Khoros servers. Instead, community members make requests to the proxy, which then makes requests to the community on the person's behalf. More generally speaking, any configuration that doesn’t include a CNAME to Community is a reverse proxy. What does Khoros recommend? As a general rule, Khoros strongly recommends against customer-controlled reverse proxy setups as these types of configuration introduce an unknown and uncontrolled layer between the end user (your customers) and our application. Occasionally, we have customers that do not discuss the concerns/goals described earlier with Khoros and add a reverse proxy in front of the community, managing the configuration and maintenance on their own. This practice often causes serious issues with community performance and stability that are difficult to debug. If you truly need a reverse proxy, we provide configuration options to create the most stable experience possible for you and your customers, and we have recommendations and best practices that we’ve learned over the years. Thoroughly discuss using a reverse proxy with Khoros, and work with Khoros Support to configure your request/response flow correctly. Using a reverse proxy—even with Khoros guidance and configuration—comes with costs that customers should understand before making the request. You may find that a reverse proxy's cost outweighs the benefits, or that Khoros has alternative solutions to consider about branding, security, and SEO that meet your needs without introducing a reverse proxy’s complexities. Let’s look at the complexities of customer-controlled reverse proxy implementations more closely: It's a black box to us. Customer-maintained proxies, using a technology of your choosing, are extremely difficult to debug and support without access to your infrastructure and specific proxy configurations. Coordinated debugging is required and can be very time-consuming. Working with Khoros to set up a reverse proxy integration properly pays off in the long run. Issues with a reverse proxy can confuse you and your customers. For example, if misconfiguration or performance issues with a reverse proxy arise, it looks like an issue with Khoros's application/infrastructure to end users. Similarly, Khoros has less information distinguishing users because all requests come from the proxy, which may be pooling connections, transforming requests, or otherwise acting differently than users’ browsers. It often takes some time to find the root cause of an issue. We’ve observed upwards of 2 times the response time for some customer-controlled reverse proxy setups, which can negatively impact SEO and dramatically reduce user retention. The reverse proxy flow has more steps than the standard Khoros response/request flow. More steps translates to extra server resources, a larger attackable surface area, extra latency for the user, and a performance bottleneck. A reverse proxy introduces an additional potential point of failure that is outside of Khoros’ control. If the proxy goes down, there's nothing Khoros can do to rectify the situation. It's entirely dependent on customer resources. Due to the lack of transparency, confusing indicators, and other complexities associated with a reverse proxy, the customer is responsible for verifying the source of any performance issues arising in a reverse proxy configuration. Khoros is not responsible for any performance issues related to or caused by a customer’s use of a reverse proxy. Therefore, it is critical that customers work with Khoros to implement a reverse proxy properly in order to minimize adverse effects. Okay, but what can really go wrong? Need some more concrete details? Here are a few issues we’ve encountered with customers who have attempted a reverse proxy implementation without Khoros guidance and proper community configuration: DNS issues: With incorrect DNS setup for the proxy or when pointing the proxy to Khoros servers incorrectly, the proxy can fail to connect. The failure might not happen at setup time but later when DNS records expire or when Khoros makes infrastructure changes. Examples we have seen include getting stuck in an infinite loop of self-requests, pointing at the wrong servers when we change IP addresses, getting turned away as invalid clients, or repeatedly being redirected to their own URL. The proxy fails to pass destination data from the original request: When this happens, we have no way of knowing the host and port that the end user (your customer) requested. We see only the host/port that the proxy requested. This incongruity can generate links and redirects with the wrong destination. In turn, if vanity hostname redirects are enabled, then the end user (your customer) is either kicked off the proxy or cannot access the community due to infinite redirects. Missing or incorrect client IP: If the reverse proxy doesn’t send the client IP, Khoros cannot get the end user IP. This makes all visitors appear to be from the same computer, which affects per-IP rate limiting and flood detection, IP bans, IP-based analytics in Community Analytics, IP-based geolocation, the Administrator IP-locking security feature, and the User IP address shown in reporting mechanisms. Response transformation: Actions such as injecting markup and JavaScript into the response has caused breakage for end users (your customers) that we could not reproduce or fix. What Khoros needs from you Your SOW order outlines the details of a reverse proxy integration. Here are a few things you can expect us to ask for: Emergency contact information: A person/team on call that we can call in the case of any integration issues, performance degradations, or outages SSL: We will use a secret header with a key to establish trust. Distributed proxy integration requires SSL to avoid the secret and key from being sniffed. These details are worked out during implementation. Proxy headers: We need to know which proxy headers you’re going to send. We require all of the following headers (these are the default, but they are customizable): X-Community-Proxy-Key: This passes the security key provided above and ensures the communication is really coming from your RP X-Community-Real-IP: Original user's IP address X-Forwarded-Host: Originally requested domain X-Forwarded-Proto: Originally requested protocol Requirements for a successful integration Make sure your proxy servers are robust, redundant, stable, and well-monitored. Connect from the proxy to the community via HTTPS for all requests. We also expect your proxy to require HTTPS for the end user. Make sure the 2 proxy headers above are populated correctly on every request. Point the proxy at the internal domain name provided by Khoros (for example, <your-company>.community.com). Do not configure using IP addresses. The community IP address may change at any time. It is recommended to preserve the Host header (for example, use "Incoming Host Header" for Forward Host Header in Akamai). It is acceptable not to preserve the Host header from the client. If you choose not to preserve it, you can pass the end-user request host using the X-Forwarded-Host header. The Host header should still reflect the internal domain provided by Khoros. If you decide not to preserve the Host header, let us know so we can configure it accordingly. proxy.allowForwardedHeader.host = true Do not alter the request or response (including all the headers and cookies) — be completely hands off to avoid regressions that are difficult to debug. If you must transform the request, let us know what you will be doing, and obey the W3C Guidelines for Web Content Transformation Proxies. We do NOT support CDN along with Reverse Proxy implementation, so alert us if you plan to use a reverse proxy so that we can take you out of our CDN. Khoros cannot update robots.txt in reverse proxy communities. You must work with your own IT team to update your robots.txt at the root level. Testing/Troubleshooting Both proxy headers, X-Community-Real-IP and X-Community-Proxy-Key, are mandatory to access the community in a reverse proxy setup across all instances. Consequently, any testing that bypasses the reverse proxy and directly targets our server must use a browser plugin (such as ModHeader for Chrome), to include both secret headers in the request. Still have questions? If you have questions about a reverse proxy implementation not answered in this article, or if you have implementation questions specific to your proxy configuration, discuss them with your Khoros Customer Success Manager.46Views1like0CommentsCommunity Outlook 2025: Trends and Predictions
Join community leaders—Brian Oblinger, Strategic Community Consultant, Brian Oblinger Strategic Consulting, Todd Nilson, President and Community Strategist, Clocktower Advisors, Michel Da Silva, Senior Community Strategist, Khoros, and Shaveta Sharma, Practice Head, Web & Communities, Grazitti Interactive, as they uncover the strategies, innovations, and challenges that will define the community landscape in 2025 and beyond! Imagine a world where communities anticipate user needs before they ask, AI crafts tailored conversations in real-time, and engagement feels less like a transaction and more like a true connection. This isn’t a distant future—it’s the reality taking shape as we move into 2025. With AI-driven personalization, next-gen gamification, and data-powered insights, communities are transforming into intelligent ecosystems that foster deeper collaboration and customer loyalty. Community managers are leveraging predictive analytics, automation is streamlining engagement, and hyper-personalization is redefining member experiences. So, what’s next? What emerging trends will shape the future of online communities, and how can you stay ahead? Some of the Topics We’ll Cover: ➤ AI & Personalization – Crafting hyper-tailored experiences to boost engagement. ➤ Hybrid & Niche Communities – The rise of specialized networks and online-offline integration. ➤ Gamification & UGC – Leveraging interactive experiences and peer-driven content. ➤ Trust, Transparency & Moderation – Building safer, more authentic community spaces. ➤ Data Privacy & Community Analytics – Balancing security with actionable insights. ➤ Scaling Without Losing the Human Touch – Growing communities while maintaining strong connections. ➤ Future Tech & Trends – Emerging innovations that will reshape online communities in 2025.23Views0likes0CommentsState of Community Management Report Launch
Join ACM Director Venessa Paech and Khoros Chief Community Evangelist Michael Puhala, as they unveil the hotly anticipated 2024 State of Community Management Report for Australia and New Zealand. They'll highlight key trends and results, what they mean for the community space in ANZ, and answer your questions about the report and its implications for your work. The 2024 ACM State of Community Management report addresses: The demographics of Australian community managers Their working conditions and contexts Their toolsets and industry relationships The nature of the communities they build and oversee How community management is framed and integrated into Australian businesses and organisations Key challenges and concerns for community practitioners Moderation challenges and practices Future trends Launched in 2015, the annual ACM State of Community Management Survey is the only benchmarking data captured about community management in Australasia. The survey is a resource for community managers (both professional and volunteer), recruiters and employers, journalists and media, policy makers, researchers and anyone looking to improve their understanding of community management as a field of work in Australia and New Zealand.21Views0likes0CommentsAnalytics API: nodeSubscriptions unexpected behaviour
Hi all, I am using the Analytics API and I am trying to get a total count of subscriptions to all nodes of the community. If I sent the following query to graphQL, I always get a null value: nodeSubscriptions(constraints: {startTime: $startTime, endTime: $endTime}) { metric { value } } } Variables used are: (Yes I know its 3 months!) { "startTime": 1719792000000, "endTime" : 1727740799000 } However if I make this call nodeSubscriptions(constraints: {startTime: $startTime, endTime: $endTime, conversationStyle: FORUM}) { metric { value } } } I successfully get a count of subscriptions, is this bug? or has nodeSubscriptions actually been disabled from pulling a count of the node subscriptions across the community? Even if you had to specify conversationStyles for this call that wouldn't let you know how many subscriptions had been made to the category level. There is a nodeType of Category / GroupHub but that doesn't seem to do it either.27Views1like0CommentsRelease Notes should never be archived
I have been researching some CSS optimization on Khoros Classic for some 30 minutes here on Atlas. This was made harder by the fact that I cannot use external search engines any longer to search Atlas. See End the Google moratorium older Khoros Classic Community Release Notes obviously being archived. The latter is actually much worse of those two challenges, because Release Notes often contain the only documentation about features and functionality that was new or changed in that release. I can only hope this was an oversight when using mass archiving, but please bring back the Classic Release Notes ASAP. E.g. https://community.khoros.com/t5/Khoros-Community-Release-Notes/Khoros-Communities-19-7-Release-Notes/ba-p/538709#performance Seems the oldes Release Notes still available today is 20.8 which I only found by clicking through the pagination: Release Notes and Info - Page 4 - Atlas (khoros.com)169Views7likes10Comments