<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Portfolio |</title><link>https://katchonka-portfolio.netlify.app/portfolio/</link><atom:link href="https://katchonka-portfolio.netlify.app/portfolio/index.xml" rel="self" type="application/rss+xml"/><description>Portfolio</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Fri, 17 Apr 2026 00:00:00 +0000</lastBuildDate><image><url>https://katchonka-portfolio.netlify.app/media/icon_hu_afbf4a02698e8403.png</url><title>Portfolio</title><link>https://katchonka-portfolio.netlify.app/portfolio/</link></image><item><title>Guidance Center</title><link>https://katchonka-portfolio.netlify.app/portfolio/guidance-center/</link><pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate><guid>https://katchonka-portfolio.netlify.app/portfolio/guidance-center/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;When a Kognitos automation requires additional context or clarification to proceed, it raises an exception. An &lt;strong&gt;exception&lt;/strong&gt; is an error or unexpected condition that prevents the automation from completing successfully.&lt;/p&gt;
&lt;p&gt;Exceptions are resolved through &lt;strong&gt;guidance&lt;/strong&gt; - input provided to the system on how to proceed. Using the &lt;strong&gt;Guidance Center&lt;/strong&gt;, you can quickly provide guidance across automations to keep them running smoothly.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Guidance Center"
srcset="https://katchonka-portfolio.netlify.app/portfolio/guidance-center/featured_hu_54bde640ee591f7d.webp 320w, https://katchonka-portfolio.netlify.app/portfolio/guidance-center/featured_hu_277a5a5d58578fe9.webp 480w, https://katchonka-portfolio.netlify.app/portfolio/guidance-center/featured_hu_bce802405b713d7d.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://katchonka-portfolio.netlify.app/portfolio/guidance-center/featured_hu_54bde640ee591f7d.webp"
width="760"
height="518"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="exceptions"&gt;Exceptions&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Exceptions&lt;/strong&gt; are issues that prevent an automation from completing successfully. They occur when Kognitos encounters an unexpected condition, such as missing or invalid data, failed integrations or connections, and scenarios it hasn&amp;rsquo;t been taught to handle yet.&lt;/p&gt;
&lt;h3 id="types"&gt;Types&lt;/h3&gt;
&lt;p&gt;Exceptions are grouped by the following &lt;strong&gt;types&lt;/strong&gt;:&lt;/p&gt;
&lt;table data-card-size="large" data-view="cards"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;System Errors&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td&gt;Issues related to the Kognitos platform or internal processes. These are typically resolved by the Kognitos engineering team, and you'll be notified when they're fixed.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;ol start="2"&gt;&lt;li&gt;&lt;strong&gt;Configuration Errors&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Issues with missing credentials, permissions, or integration settings that prevent your automation from accessing external systems.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Missing API key for an integration; authentication credentials have expired.&lt;/p&gt;&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;ol start="3"&gt;&lt;li&gt;&lt;strong&gt;Value Errors&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Missing or unclear data that prevents the automation from proceeding.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; A required field like "Invoice Number" is missing from a document, or a value appears in an unexpected format.&lt;/p&gt;&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;ol start="4"&gt;&lt;li&gt;&lt;strong&gt;Validation Errors&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;Issues where the automation needs confirmation that a condition or business rule has been met. Kognitos automatically classifies validation-related exceptions into this group for faster triage.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Verifying that a contract clause meets company policy requirements, or confirming that extracted data passes a business rule check.&lt;/p&gt;&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id="using-the-guidance-center"&gt;Using the Guidance Center&lt;/h2&gt;
&lt;p&gt;Access the &lt;strong&gt;Guidance Center&lt;/strong&gt; from the left navigation menu. It displays all open exceptions across your workspace, organized by automation and exception type.&lt;/p&gt;
&lt;h3 id="dashboard"&gt;Dashboard&lt;/h3&gt;
&lt;p&gt;When you open the Guidance Center, you&amp;rsquo;ll see a summary dashboard:&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://4162850352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2dWUsD9HEagjfZqvgHO%2Fuploads%2FOY3NVgC1iUL2oDQxcdmp%2Fguidance-center-metrics.png?alt=media&amp;#x26;token=a7eee8e6-508a-4661-8c29-c05647524f39" alt=""&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h4 id="metrics"&gt;Metrics&lt;/h4&gt;
&lt;p&gt;The dashboard displays the following metrics to help you monitor automation health:&lt;/p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th width="234.3828125"&gt;Metric&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Auto-completion (STP)&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Percentage of runs that completed without manual intervention.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Runs Need Action&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Number of runs currently paused and waiting for guidance.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Total Completion&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Overall success rate across all automation runs.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Runs This Week&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Number of automation runs in the current week.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Exception Rate&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Percentage of runs that raised exceptions.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;MTTR (Mean Time to Resolution)&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Average time it takes to resolve exceptions.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Run Status&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;A visual chart that shows your automation performance over time, color-coded by resolution type:&lt;br&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Auto-completion&lt;/strong&gt;: Runs completed without manual intervention.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Manually resolved&lt;/strong&gt;: Runs that required your input to complete.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Action needed&lt;/strong&gt;: Runs are currently waiting for your action.&lt;/li&gt;&lt;/ul&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h3 id="action-items"&gt;Action Items&lt;/h3&gt;
&lt;p&gt;An &lt;strong&gt;action item&lt;/strong&gt; is a task created when one or more runs are affected by the same exception. The Guidance Center groups these runs by exception type, allowing you to review and resolve the issues in bulk, rather than one run at a time.&lt;/p&gt;
&lt;p&gt;Each action item shows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Name:&lt;/strong&gt; The name of the issue that occurred &lt;em&gt;(Missing Values, User System Error, etc.)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Priority:&lt;/strong&gt; The severity of the automation exception&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Run count:&lt;/strong&gt; How many runs is this exception affecting&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automations:&lt;/strong&gt; A list of automations that raised the exception&lt;/li&gt;
&lt;/ul&gt;
&lt;figure&gt;&lt;img src="https://4162850352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2dWUsD9HEagjfZqvgHO%2Fuploads%2Fy2FVUMtvc8VVPYbXvoRS%2Fguidance-center-action-items.png?alt=media&amp;#x26;token=6056dce0-0472-4fbf-af7e-639d67801de6" alt=""&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Selecting an action item lets you view the affected runs, review details, and provide guidance in bulk. Click on &lt;kbd&gt;&lt;strong&gt;Start review&lt;/strong&gt;&lt;/kbd&gt; to review the impacted runs and provide guidance.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://4162850352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2dWUsD9HEagjfZqvgHO%2Fuploads%2F3qML90AGqT5UnZHaGunp%2Fguidance-center-action%20(1).png?alt=media&amp;#x26;token=2e9328db-7335-41f9-8abf-dd8fda2aef68" alt=""&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h3 id="system-issues"&gt;System Issues&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;System Issues&lt;/strong&gt; are internal platform errors that are being handled by the Kognitos engineering team.&lt;/p&gt;
&lt;figure&gt;&lt;img src="https://4162850352-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2dWUsD9HEagjfZqvgHO%2Fuploads%2Fc0FwfeRf8BTbinGmFsYz%2Fguidance-center-system-issues.png?alt=media&amp;#x26;token=c4b1c1c6-a837-4e06-8594-6ffc8b29d057" alt=""&gt;&lt;figcaption&gt;&lt;/figcaption&gt;&lt;/figure&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Note&lt;/div&gt;
&lt;div class="callout-body"&gt;No action is required from you for system issues - Kognitos will handle them accordingly.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Exception Routing</title><link>https://katchonka-portfolio.netlify.app/portfolio/exception-routing/</link><pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate><guid>https://katchonka-portfolio.netlify.app/portfolio/exception-routing/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Exception routing&lt;/strong&gt; is a process configuration setting in Kognitos. It allows agent admins to configure assignment and notification rules for exceptions.&lt;/p&gt;
&lt;p&gt;When a process encounters an
&lt;em&gt;(a question requiring guidance),&lt;/em&gt; these rules ensure that the right person is automatically assigned to handle it and that the appropriate team members are notified.&lt;/p&gt;
&lt;h2 id="configuration"&gt;Configuration&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Agent admins&lt;/strong&gt; can configure exception routing for a given process, including the following settings:&lt;/p&gt;
&lt;table data-header-hidden&gt;&lt;thead&gt;&lt;tr&gt;&lt;th width="215.48046875"&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Exception Assignment&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Specifies who is automatically assigned to handle exceptions.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Email Notifications&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Specifies who receives email alerts when exceptions need guidance.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h3 id="how-to-configure-exception-routing"&gt;How to Configure Exception Routing&lt;/h3&gt;
&lt;p&gt;Follow these steps to configure exception routing for a process:&lt;/p&gt;
&lt;h4 id="1-select-a-process"&gt;1. Select a Process&lt;/h4&gt;
&lt;p&gt;Navigate to &lt;kbd&gt;&lt;strong&gt;Processes&lt;/strong&gt;&lt;/kbd&gt; and click on the process to be configured.&lt;/p&gt;
&lt;h4 id="2-exception-routing"&gt;2. Exception Routing&lt;/h4&gt;
&lt;p&gt;Click on the menu &lt;kbd&gt;&lt;strong&gt;⋮&lt;/strong&gt;&lt;/kbd&gt; in the top-right and select &lt;kbd&gt;&lt;strong&gt;Exception Routing&lt;/strong&gt;&lt;/kbd&gt;.&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-orange-100 dark:bg-orange-900 border-orange-500"
data-callout="warning"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-orange-600 dark:text-orange-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0zM12 15.75h.007v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Warning&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;em&gt;The process must be in &lt;strong&gt;draft&lt;/strong&gt; mode. If the process is published, click &lt;kbd&gt;&lt;strong&gt;Edit&lt;/strong&gt;&lt;/kbd&gt; first.&lt;/em&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure&gt;&lt;img src="https://681267560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyXsMyN9vMn8AoQ4BYIwT%2Fuploads%2Fgit-blob-16548855fe088cf16a730ca54badb26f6b9a4fe0%2Fexception-routing-setting.png?alt=media" alt=""&gt;&lt;figcaption&gt;&lt;p&gt;Exception Routing Menu Option&lt;/p&gt;&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h4 id="3-exception-configurations"&gt;3. Exception Configurations&lt;/h4&gt;
&lt;p&gt;Configure the following details, which may be updated at any time:&lt;/p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th width="192.65625"&gt;Field&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Exception Assignee&lt;/strong&gt; &lt;em&gt;(Required)&lt;/em&gt;&lt;/td&gt;&lt;td&gt;The user(s) to assign to handle exceptions for this process. At least one user is required.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Notify Members&lt;/strong&gt; &lt;em&gt;(Optional)&lt;/em&gt;&lt;/td&gt;&lt;td&gt;The user(s) to notify via email when exceptions need guidance. This is optional and may be left blank.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Note&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;p&gt;Only &lt;strong&gt;collaborators&lt;/strong&gt; of the agent can be selected as assignees.&lt;/p&gt;
&lt;p&gt;To add additional users, go to &lt;strong&gt;Settings&lt;/strong&gt; → &lt;strong&gt;Invite Users&lt;/strong&gt; → &lt;strong&gt;Add Collaborator&lt;/strong&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure&gt;&lt;img src="https://681267560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyXsMyN9vMn8AoQ4BYIwT%2Fuploads%2Fgit-blob-6fa37796f31fdf257aa22eab889410d5b2d5f19b%2Fexception-configurations.png?alt=media" alt=""&gt;&lt;figcaption&gt;&lt;p&gt;Exception Configurations&lt;/p&gt;&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h4 id="4-save-and-publish"&gt;4. Save and Publish&lt;/h4&gt;
&lt;p&gt;Press &lt;kbd&gt;&lt;strong&gt;Save&lt;/strong&gt;&lt;/kbd&gt; to apply your configuration changes. Then, &lt;strong&gt;publish&lt;/strong&gt; your process to make the changes live.&lt;/p&gt;
&lt;h2 id="examples"&gt;Examples&lt;/h2&gt;
&lt;h3 id="1-basic-assignment"&gt;1. Basic Assignment&lt;/h3&gt;
&lt;p&gt;In this example, exceptions go to the process creator with no notification recipients.&lt;/p&gt;
&lt;table data-header-hidden&gt;&lt;thead&gt;&lt;tr&gt;&lt;th width="220.45703125"&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Exception Assignee&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;john.doe@company.com &lt;em&gt;(Process Creator)&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Notification Recipients&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h3 id="2-specialized-handler-with-team-notifications"&gt;2. Specialized Handler with Team Notifications&lt;/h3&gt;
&lt;p&gt;Here, exceptions are assigned to the process creator while the team lead and backup get email notifications.&lt;/p&gt;
&lt;table data-header-hidden&gt;&lt;thead&gt;&lt;tr&gt;&lt;th width="220.45703125"&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Exception Assignee&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;jane.smith@company.com &lt;em&gt;(Process Creator)&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Notification Recipients&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;team-lead@company.com, backup-person@company.com&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h3 id="3-on-call-assignment"&gt;3. On-Call Assignment&lt;/h3&gt;
&lt;p&gt;Here, the current on-call person is assigned exceptions while the manager stays informed through email notifications.&lt;/p&gt;
&lt;table data-header-hidden&gt;&lt;thead&gt;&lt;tr&gt;&lt;th width="220.45703125"&gt;&lt;/th&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Exception Assignee&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;oncall@company.com &lt;em&gt;(current on-call person)&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Notification Recipients&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;manager@company.com&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</description></item><item><title>Exporting and Importing Agents</title><link>https://katchonka-portfolio.netlify.app/portfolio/exporting-and-importing-agents/</link><pubDate>Wed, 01 Oct 2025 00:00:00 +0000</pubDate><guid>https://katchonka-portfolio.netlify.app/portfolio/exporting-and-importing-agents/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;Kognitos supports the ability to &lt;strong&gt;export&lt;/strong&gt; automation agents from one environment and &lt;strong&gt;import&lt;/strong&gt; them into another. This allows you to move published automation content across agents in a controlled way.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Exporting &amp;amp; Importing Agents"
srcset="https://katchonka-portfolio.netlify.app/portfolio/exporting-and-importing-agents/featured_hu_606eaaee308c204f.webp 320w, https://katchonka-portfolio.netlify.app/portfolio/exporting-and-importing-agents/featured_hu_d81ed1d0d7e8c038.webp 480w, https://katchonka-portfolio.netlify.app/portfolio/exporting-and-importing-agents/featured_hu_46f217e630791f5d.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://katchonka-portfolio.netlify.app/portfolio/exporting-and-importing-agents/featured_hu_606eaaee308c204f.webp"
width="760"
height="424"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="exporting-an-agent"&gt;Exporting an Agent&lt;/h2&gt;
&lt;p&gt;Exporting lets you download a snapshot of an agent’s &lt;strong&gt;published state&lt;/strong&gt;. The export includes only published processes, learnings, and books — draft processes, playgrounds, and configuration credentials are &lt;em&gt;not&lt;/em&gt; exported. Anyone with access to the agent can export it.&lt;/p&gt;
&lt;h3 id="how-to-export-an-agent"&gt;How to Export an Agent&lt;/h3&gt;
&lt;h4 id="1-navigate-to-agents"&gt;1. Navigate to Agents&lt;/h4&gt;
&lt;p&gt;Open the agent menu and select &lt;kbd&gt;View All&lt;/kbd&gt;.&lt;/p&gt;
&lt;h4 id="2-select-an-agent"&gt;2. Select an Agent&lt;/h4&gt;
&lt;p&gt;Check the box next to the agent you want to export.&lt;/p&gt;
&lt;h4 id="3-start-export"&gt;3. Start Export&lt;/h4&gt;
&lt;p&gt;Click on &lt;kbd&gt;Actions&lt;/kbd&gt;, then select &lt;kbd&gt;Export&lt;/kbd&gt; from the dropdown.&lt;/p&gt;
&lt;h4 id="4-confirm-export"&gt;4. Confirm Export&lt;/h4&gt;
&lt;p&gt;In the confirmation popup, click on &lt;strong&gt;Export&lt;/strong&gt; again. This will download a &lt;strong&gt;.json&lt;/strong&gt; file containing the agent&amp;rsquo;s current state, which can be later imported into a new or existing agent.&lt;/p&gt;
&lt;p&gt;➡️
&lt;/p&gt;
&lt;h2 id="importing-an-agent"&gt;Importing an Agent&lt;/h2&gt;
&lt;p&gt;You can import an agent using a &lt;strong&gt;.json&lt;/strong&gt; file generated from the export process. There are two ways to do this — into a &lt;strong&gt;new agent&lt;/strong&gt; or &lt;strong&gt;into an existing agent&lt;/strong&gt;. All imported items are added as &lt;strong&gt;drafts&lt;/strong&gt;. The agent&amp;rsquo;s published content is &lt;em&gt;not&lt;/em&gt; affected unless you review and publish the imported content.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import into a New Agent&lt;/strong&gt;: Use this option to create a &lt;strong&gt;new agent&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Import into an Existing Agent&lt;/strong&gt;: This option allows you to update an &lt;strong&gt;existing agent&lt;/strong&gt; and is available only to agent &lt;strong&gt;admins&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="how-to-import-an-agent"&gt;How to Import an Agent&lt;/h3&gt;
&lt;h4 id="1-navigate-to-agents-1"&gt;1. Navigate to Agents&lt;/h4&gt;
&lt;p&gt;Open the agent menu and select &lt;kbd&gt;View All&lt;/kbd&gt;.&lt;/p&gt;
&lt;h4 id="2-start-import"&gt;2. Start Import&lt;/h4&gt;
&lt;p&gt;Click on &lt;kbd&gt;Import&lt;/kbd&gt; to start the import.&lt;/p&gt;
&lt;h4 id="3-add-import-details"&gt;3. Add Import Details&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Upload a &lt;strong&gt;.json&lt;/strong&gt; file of an exported agent.&lt;/li&gt;
&lt;li&gt;Choose &lt;em&gt;one&lt;/em&gt; of the following options:
&lt;ol&gt;
&lt;li&gt;Select &lt;strong&gt;Create New Agent&lt;/strong&gt; and provide a name for the new agent.&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Import to Existing Agent&lt;/strong&gt; and select an existing agent from the dropdown menu. &lt;em&gt;Note: This option is only available to agent admins.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;kbd&gt;Next&lt;/kbd&gt; to continue.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="4-review-and-confirm"&gt;4. Review and Confirm&lt;/h4&gt;
&lt;p&gt;Review the summary of the import and click &lt;kbd&gt;Import&lt;/kbd&gt; to finish importing.&lt;/p&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Note&lt;/div&gt;
&lt;div class="callout-body"&gt;By default, all items are selected for import. You can uncheck items to exclude them.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;➡️
&lt;/p&gt;</description></item><item><title>Kognitos Release Notes: 8/1/2025</title><link>https://katchonka-portfolio.netlify.app/portfolio/kognitos-release-notes-8-1-2025/</link><pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate><guid>https://katchonka-portfolio.netlify.app/portfolio/kognitos-release-notes-8-1-2025/</guid><description>&lt;h2 id="save-dashboard-insights-as-images"&gt;Save Dashboard Insights as Images&lt;/h2&gt;
&lt;p&gt;You can now download a &lt;strong&gt;PNG image&lt;/strong&gt; of any individual metric in the
. Whether you&amp;rsquo;re preparing a slide deck, building a report, or updating your team, you can easily share your insights from Kognitos.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Save Images"
srcset="https://katchonka-portfolio.netlify.app/portfolio/kognitos-release-notes-8-1-2025/featured_hu_d7dfb0c070db57cb.webp 320w, https://katchonka-portfolio.netlify.app/portfolio/kognitos-release-notes-8-1-2025/featured_hu_9dd88742bf4d899b.webp 480w, https://katchonka-portfolio.netlify.app/portfolio/kognitos-release-notes-8-1-2025/featured_hu_724966a9170c819b.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://katchonka-portfolio.netlify.app/portfolio/kognitos-release-notes-8-1-2025/featured_hu_d7dfb0c070db57cb.webp"
width="760"
height="378"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="bdk-books-can-now-ask-questions"&gt;BDK Books Can Now Ask Questions&lt;/h2&gt;
&lt;p&gt;We&amp;rsquo;ve expanded our
with a new feature that allows you to ask questions in BDK Books. Using the new &lt;strong&gt;ask()&lt;/strong&gt; method, your Book can request information - like a date, a username, or any other piece of data.&lt;/p&gt;
&lt;h2 id="enhancements"&gt;Enhancements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Abort Long-Running Guidance&lt;/strong&gt;: Users can now abort long-running guidance computations that are taking long to process.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Extended Character Limits&lt;/strong&gt;: The character limit for a single learning has increased from 10,000 to 15,000.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Process Widget Search&lt;/strong&gt;: The process widget dropdown now includes a search bar.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="resolved-issues"&gt;Resolved Issues&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Agent Imports&lt;/strong&gt;: Resolved an issue where large agent imports caused a timeout error. We&amp;rsquo;ve also improved the import process to be significantly faster.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Process Creation&lt;/strong&gt;: Resolved an issue where the &lt;kbd&gt;Create Process&lt;/kbd&gt; button in the Playground was disabled if the first line in the automation was empty.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;REST API (v1)&lt;/strong&gt;: Resolved an issue where invalid requests to the legacy REST API caused internal server errors.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Defining Data</title><link>https://katchonka-portfolio.netlify.app/portfolio/kognitos-defining-data/</link><pubDate>Fri, 15 Nov 2024 00:00:00 +0000</pubDate><guid>https://katchonka-portfolio.netlify.app/portfolio/kognitos-defining-data/</guid><description>&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="info"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m11.25 11.25l.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0a9 9 0 0 1 18 0m-9-3.75h.008v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Info&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;em&gt;This guide describes &lt;strong&gt;Klang&lt;/strong&gt;, Kognitos’ natural-language-based syntax for building automations. It allows you to build automations by writing instructions as if you were describing them in words.&lt;/em&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;In Kognitos, &lt;strong&gt;defining data&lt;/strong&gt; refers to naming a specific piece of information, allowing it to be stored, referenced, updated, and passed between steps within an automation.&lt;/p&gt;
&lt;p&gt;Every &lt;strong&gt;data element&lt;/strong&gt; (also referred to as a &lt;strong&gt;fact&lt;/strong&gt;) consists of two parts:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A
that identifies and labels the data.&lt;/li&gt;
&lt;li&gt;A
, which represents the information itself. Values can be singular or plural.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="defining-singular-data"&gt;Defining Singular Data&lt;/h3&gt;
&lt;p&gt;To define a &lt;strong&gt;singular&lt;/strong&gt; data element, use &lt;strong&gt;&amp;ldquo;is&amp;rdquo;&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;name&amp;gt; is &amp;lt;value&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="defining-plural-data"&gt;Defining Plural Data&lt;/h3&gt;
&lt;p&gt;To define a &lt;strong&gt;plural&lt;/strong&gt; data element, use &lt;strong&gt;&amp;ldquo;are&amp;rdquo;&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;name(s)&amp;gt; are &amp;lt;value(s)&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="examples"&gt;Examples&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;In this example, &lt;strong&gt;the customer&lt;/strong&gt; is the data name. It is assigned the singular value &lt;strong&gt;&amp;ldquo;John Smith&amp;rdquo;&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the customer is &amp;#34;John Smith&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="2"&gt;
&lt;li&gt;Here, &lt;strong&gt;the items&lt;/strong&gt; is the plural data name. It is assigned the plural value of &lt;strong&gt;the documents&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the items are the documents
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="3"&gt;
&lt;li&gt;In this example, &lt;strong&gt;the fruits&lt;/strong&gt; is the plural data name. It is assigned a list &lt;em&gt;(plural)&lt;/em&gt; of fruit values:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the fruits are the apple, the banana, the orange
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-orange-100 dark:bg-orange-900 border-orange-500"
data-callout="warning"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-orange-600 dark:text-orange-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0zM12 15.75h.007v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Warning&lt;/div&gt;
&lt;div class="callout-body"&gt;Make sure singular names pair with singular values, and plural names pair with plural values! For example, you wouldn’t write &lt;strong&gt;“the fruits is the orange”&lt;/strong&gt;. Instead, you would write: &lt;strong&gt;“the fruits are the oranges”&lt;/strong&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="data-names"&gt;Data Names&lt;/h2&gt;
&lt;p&gt;Data names define how information is labeled and referenced. The following rules apply:&lt;/p&gt;
&lt;h3 id="1-begin-with-the"&gt;1. Begin with &amp;ldquo;the&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;Data names must be prefaced with &lt;strong&gt;the&lt;/strong&gt;. For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the email
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the phone number
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the primary username
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-names-can-be-simple-or-descriptive"&gt;2. Names can be Simple or Descriptive&lt;/h3&gt;
&lt;p&gt;Data names can be simple or descriptive. Adjectives can be used in descriptive names to provide additional clarity or context. For example:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Simple Name&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the message
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Descriptive Name&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the very special user greeting message
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="data-values"&gt;Data Values&lt;/h2&gt;
&lt;p&gt;Data values can be singular or plural. Possible data types include &lt;strong&gt;numbers&lt;/strong&gt;, &lt;strong&gt;text&lt;/strong&gt;, &lt;strong&gt;dates&lt;/strong&gt;, &lt;strong&gt;lists,&lt;/strong&gt; or &lt;strong&gt;references to other data&lt;/strong&gt; elements.&lt;/p&gt;
&lt;h3 id="1-numbers"&gt;1. Numbers&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Numeric&lt;/strong&gt; values can be assigned to data such as age, balance, or rates. For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the age is 21
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the bank balance is $120.20
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the interest rates are 5.67, 6.25
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-text"&gt;2. Text&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Text&lt;/strong&gt; values can be words, sentences, or phrases. They can include any characters—letters, numbers, symbols, or spaces—as long as they are enclosed in double quotes (&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;). For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the message is &amp;#34;Welcome to Kognitos!&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the username is &amp;#34;i-like-to-automate-123&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the announcement is &amp;#34;We&amp;#39;re so glad you&amp;#39;re here. Let&amp;#39;s build something great together.&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-dates"&gt;3. Dates&lt;/h3&gt;
&lt;p&gt;A &lt;strong&gt;date&lt;/strong&gt; value represents a specific calendar day, such as a due date, birthday, or event date. Be sure to enclose date values in double quotes (&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;). For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the due date is &amp;#34;2024-11-05&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the project start date is &amp;#34;January 1, 2024&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the birthday is &amp;#34;March 22, 1990&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-lists"&gt;4. Lists&lt;/h3&gt;
&lt;p&gt;To define a &lt;strong&gt;list&lt;/strong&gt;, separate the values by commas. For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the test scores are 95, 86, 100, 77, 65 and 99
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the coupon codes are &amp;#34;SAVE20&amp;#34;, &amp;#34;SALE2024&amp;#34;, &amp;#34;HAPPYHOUR&amp;#34; and &amp;#34;JUST4U&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the email addresses are &amp;#34;john@gmail.com&amp;#34;, &amp;#34;johnny@yahoo.com&amp;#34; and &amp;#34;johnsmith@aol.com&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="5-referencing-other-data"&gt;5. Referencing Other Data&lt;/h3&gt;
&lt;p&gt;The value of a data element can also be a &lt;strong&gt;reference to another data element&lt;/strong&gt;. In these cases, the data value is set to another data name. For example:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the username is the customer email
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the documents are the receipts
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the approver is the manager
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-orange-100 dark:bg-orange-900 border-orange-500"
data-callout="warning"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-orange-600 dark:text-orange-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0zM12 15.75h.007v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Warning&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;strong&gt;Note:&lt;/strong&gt; You can only reference another data element if it has been defined earlier in the automation.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="6-the-above"&gt;6. The Above&lt;/h3&gt;
&lt;p&gt;When a data element&amp;rsquo;s value is set to &lt;code&gt;the above&lt;/code&gt;, Kognitos makes a &lt;strong&gt;copy of the value&lt;/strong&gt; from the previous lines in the automation:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;lt;data name&amp;gt; is the above
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="examples-1"&gt;Examples&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;In this example, &lt;strong&gt;the backup email&lt;/strong&gt; is assigned the value &lt;code&gt;john@example.com&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the customer email is &amp;#34;john@example.com&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the backup email is the above
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="2"&gt;
&lt;li&gt;Here, &lt;strong&gt;the invoice total&lt;/strong&gt; is assigned the value &lt;code&gt;150&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the order total is 150
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the invoice total is the above
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="3"&gt;
&lt;li&gt;In this example, &lt;strong&gt;the file&lt;/strong&gt; is assigned a copy of the above file in the automation.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the file is the above
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="reassigning-data"&gt;Reassigning Data&lt;/h2&gt;
&lt;p&gt;Use the &lt;code&gt;use&lt;/code&gt; keyword to reassign a data element, which &lt;strong&gt;copies the reference&lt;/strong&gt; to the original data value:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;use &amp;lt;data value&amp;gt; as the &amp;lt;data name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-orange-100 dark:bg-orange-900 border-orange-500"
data-callout="warning"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-orange-600 dark:text-orange-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0zM12 15.75h.007v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Warning&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;strong&gt;Overwriting Data&lt;/strong&gt;: Updating a referenced data element can overwrite previous data — see
for more details.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id="examples-2"&gt;Examples&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;In this example, the &lt;strong&gt;registration date&lt;/strong&gt; is reassigned the value &lt;code&gt;11-05-2024&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;use &amp;#34;11-05-2024&amp;#34; as the registration date
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="2"&gt;
&lt;li&gt;In this example, &lt;strong&gt;the order name&lt;/strong&gt; is assigned a copy of the reference to &lt;strong&gt;the last name&lt;/strong&gt;, meaning it will point to the same value.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;use the last name as the order name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If the last name changes, the order name will also change, because it references the same value. When the last name changes to &lt;code&gt;Smith-Brown&lt;/code&gt; (line #3), the order name also changes (line #4):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the last name is &amp;#34;Smith&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;use the last name as the order name
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the last name is &amp;#34;Smith-Brown&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;the order name
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Release Notes: BrewBuddy v8.3.0</title><link>https://katchonka-portfolio.netlify.app/portfolio/release-notes-brewbuddy/</link><pubDate>Tue, 18 Jun 2024 00:00:00 +0000</pubDate><guid>https://katchonka-portfolio.netlify.app/portfolio/release-notes-brewbuddy/</guid><description>&lt;h2 id="new-features"&gt;New Features&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;Brew Timer&lt;/strong&gt; is finally here! This is a new feature that allows users to set timers directly from the recipe screen, leading to a more seamless and precise brewing experience. Check out
for more information.&lt;/p&gt;
&lt;h2 id="bug-fixes"&gt;Bug Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Resolved an issue with images not loading properly or appearing blurry.&lt;/li&gt;
&lt;li&gt;Resolved an issue where the temperature setting defaulted to 0.&lt;/li&gt;
&lt;li&gt;Resolved inaccurate unit conversions on the recipe screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="whats-brewing-on-the-horizon"&gt;What’s Brewing on the Horizon?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Coming soon is the &lt;strong&gt;Brewing Events Calendar&lt;/strong&gt; - a newly centralized location for all upcoming coffee events, workshops, and festivals 📅&lt;/li&gt;
&lt;li&gt;Enhancements to the &lt;strong&gt;Brew Timer&lt;/strong&gt;, including:
&lt;ul&gt;
&lt;li&gt;Dark-mode display&lt;/li&gt;
&lt;li&gt;Multi-step brew timers&lt;/li&gt;
&lt;li&gt;Customizable timer presets&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;div class="callout flex px-4 py-3 mb-6 rounded-md border-l-4 bg-blue-100 dark:bg-blue-900 border-blue-500"
data-callout="note"
data-callout-metadata=""&gt;
&lt;span class="callout-icon pr-3 pt-1 text-blue-600 dark:text-blue-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m16.862 4.487l1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8l.8-2.685a4.5 4.5 0 0 1 1.13-1.897zm0 0L19.5 7.125"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;div class="callout-content dark:text-neutral-300"&gt;
&lt;div class="callout-title font-semibold mb-1"&gt;Note&lt;/div&gt;
&lt;div class="callout-body"&gt;&lt;strong&gt;BrewBuddy&lt;/strong&gt; is a fictional app for demonstrational purposes only. It represents an online platform that provides brewing tips and step-by-step guides to empower coffee enthusiasts.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item></channel></rss>