
Transformação digital gera eficiência na CNU
A Unimed CNU está acelerando sua transformação digital e já colhe resultados expressivos na otimização de processos e na qualidade dos serviços prestados aos beneficiários e às Sócias. Por meio do avanço em automação, inteligência artificial e novos sistemas de gestão, a Cooperativa registrou reduções significativas nos prazos de resposta em frentes cruciais como comercial, ouvidoria e jurídico, consolidando uma atuação cada vez mais ágil, sustentável e orientada à geração de valor para todo o Sistema Unimed.
Conectividade de canais e visão unificada
Para acompanhar o cliente em todas as fases da sua jornada, a CNU está estruturando seu novo sistema de gestão de relacionamento (CRM) a partir da união de duas frentes complementares. De um lado, a plataforma Salesforce integra os canais de atendimento para garantir uma comunicação mais direta e fluida no dia a dia. Do outro, a inteligência comercial e a automação gerenciam o ciclo completo dos contratos corporativos, englobando reajustes anuais, prevenção de fraudes e ações de retenção. Essa sinergia conecta a eficiência operacional interna, por meio da otimização dos fluxos, à melhor experiência do beneficiário, da prospecção ao suporte diário.
A consolidação dessa arquitetura reflete-se em ganhos mensuráveis de eficiência em áreas estratégicas. Na frente comercial, a automação de 57% dos cálculos atuariais reduziu as validações manuais e encurtou o tempo médio de emissão de cotações e propostas para pessoas jurídicas de 21 para apenas cinco dias. Na Ouvidoria, a integração das demandas aos canais digitais garantiu que 85% das solicitações fossem respondidas em até cinco dias, prazo inferior ao limite máximo exigido pela regulação. Já no setor jurídico contencioso, o tempo médio de tratamento de processos e liminares caiu de 60 para 3,1 dias, uma redução de cerca de 95%.
Eficiência operacional e Inteligência Artificial
Na automação de processos, a simplificação de tarefas repetitivas reduz erros e atrasos, aumentando a produtividade das equipes. A CNU conta atualmente com 51 robôs (RPA) em funcionamento, que já geraram uma economia de R$ 15 milhões e devolveram mais de 65 mil horas de trabalho nos últimos 12 meses. Essa liberação operacional permite que os colaboradores direcionem seus esforços para análises estratégicas e para um atendimento mais humanizado.
A Inteligência Artificial também ganha protagonismo com o desenvolvimento de agentes especialistas criados para demandas estratégicas e assistenciais. Atualmente, os algoritmos atuam no acompanhamento de pacientes na linha de cuidado do Transtorno do Espectro Autista (TEA), na análise preditiva de manifestações da Ouvidoria, no mapeamento de pontos de atenção em atas de reuniões e na identificação preventiva de riscos em contratos corporativos. Com a integração dessas soluções, a CNU consolida a inovação como pilar essencial para otimizar recursos e garantir a excelência em seus serviços.
The following has evaluated to null or missing:
==> journalArticle.getDisplayDate [in template "53466405417913#7352900#7367229" at line 71, column 34]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign articleDate = journalArticle... [in template "53466405417913#7352900#7367229" at line 71, column 11]
----
1<style>
2 #socias-posts-relacionados-wrapper {
3 box-shadow: 0px 2px 4px 0px rgba(39, 40, 51, 0.12);
4 border-radius: 16px;
5 padding: 25px;
6 border: solid 1px rgba(107, 108, 126, 0.2);
7 background-color: rgba(255, 255, 255, 1);
8 display: flex;
9 flex-direction: column;
10 gap: 32px;
11 }
12
13 #socias-posts-relacionados-wrapper .socias-card-post-relacionados {
14 display: flex;
15 flex-direction: column;
16 gap: 16px;
17 }
18
19 #socias-posts-relacionados-wrapper .principal-title {
20 font-family: 'Unimed Sans';
21 color: #141419;
22 font-size: 1.25rem;
23 line-height: 1.75rem;
24 font-weight: 700;
25 margin: 0px;
26 }
27
28 #socias-posts-relacionados-wrapper .socias-post-relacionado-link {
29 font-size: 1rem;
30 line-height: 1.375rem;
31 font-weight: 700;
32 color: #141419;
33 font-family: 'Unimed Sans';
34 }
35
36 #socias-posts-relacionados-wrapper .socias-post-relacionado-link:hover {
37 text-decoration: underline;
38 }
39
40 #socias-posts-relacionados-wrapper .socias-date {
41 font-size: 1rem;
42 line-height: 1.375rem;
43 font-weight: 400;
44 color: #6B6C7E;
45 }
46
47 @media (max-width: 800px) {
48 #socias-posts-relacionados-wrapper {
49 margin: 32px 16px;
50 }
51 }
52</style>
53<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
54<#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
55<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
56
57<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
58<#assign HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"] />
59
60<div id="socias-posts-relacionados-wrapper">
61 <h3 class="principal-title">Posts relacionados</h3>
62
63 <div>
64 <#if entries?has_content>
65 <div class="socias-card-post-relacionados">
66 <#list entries as entry>
67 <#assign assetEntry = AssetEntryLocalService.getEntry(entry.getClassName(), entry.getClassPK()) />
68 <#assign assetRenderer = assetEntry.getAssetRenderer() />
69 <#assign journalArticle = assetRenderer.getAssetObject() />
70 <#assign assetCategories = assetEntry.getCategories() />
71 <#assign articleDate = journalArticle.getDisplayDate()?string("dd'/'MM'/'yyyy") />
72
73 <#-- Reading time (words per minute = 200) -->
74 <#assign rawContent = journalArticle.getContent()?if_exists!"" />
75 <#assign textContent = HtmlUtil.stripHtml(rawContent) />
76 <#assign textContent = HtmlUtil.unescape(textContent) />
77 <#assign textContent = textContent?replace("\\$\\{[^}]+\\}", "", "r") />
78 <#assign textContent = textContent?replace("\\]\\]>", "", "r") />
79 <#assign textContent = textContent?replace(" ", " ", "r") />
80 <#assign textContent = textContent?replace("\n", " ", "r") />
81 <#assign textContent = textContent?replace("\r", " ", "r") />
82 <#assign textContent = textContent?replace("\t", " ", "r") />
83 <#assign textContent = textContent?replace("\\s+", " ", "r")?trim />
84 <#assign words = (textContent?length > 0)?then(textContent?split(" ")?size, 0) />
85 <#assign wpm = 200 />
86 <#assign minutes = (words / wpm)?ceiling />
87 <#if minutes < 1><#assign minutes = 1 /></#if>
88 <#assign assetCategories = assetEntry.getCategories() />
89 <#assign articleDate = journalArticle.getCreateDate()?string("dd'/'MM'/'yyyy") />
90
91 <#-- Monta link já com o categoryId -->
92 <#if assetCategories?has_content>
93 <#assign firstCategory = assetCategories[0] />
94 <#assign articleURL = entry.getViewURL() + "&category=" + firstCategory.getCategoryId() />
95 <#else>
96 <#assign articleURL = entry.getViewURL() />
97 </#if>
98
99 <a href="${articleURL}" class="text-decoration-none">
100 <div class="d-flex mb-1">
101 <div class="mr-2">
102 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
103 <path d="M8.75016 1.16663H3.50016C3.19074 1.16663 2.894 1.28954 2.6752 1.50833C2.45641 1.72713 2.3335 2.02387 2.3335 2.33329V11.6666C2.3335 11.976 2.45641 12.2728 2.6752 12.4916C2.894 12.7104 3.19074 12.8333 3.50016 12.8333H10.5002C10.8096 12.8333 11.1063 12.7104 11.3251 12.4916C11.5439 12.2728 11.6668 11.976 11.6668 11.6666V4.08329L8.75016 1.16663Z" stroke="#00995C" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
104 <path d="M8.1665 1.16663V3.49996C8.1665 3.80938 8.28942 4.10612 8.50821 4.32492C8.72701 4.54371 9.02375 4.66663 9.33317 4.66663H11.6665" stroke="#00995C" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
105 <path d="M5.83317 5.25H4.6665" stroke="#00995C" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
106 <path d="M9.33317 7.58337H4.6665" stroke="#00995C" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
107 <path d="M9.33317 9.91663H4.6665" stroke="#00995C" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
108 </svg>
109 </div>
110
111 <div>
112 <p class="socias-post-relacionado-link mb-2">
113 ${entry.getHighlightedTitle()}
114 </p>
115
116 <span class="socias-date" >${minutes} min</span>
117
118 <#if entry.isCreationDateVisible()>
119 <span class="socias-date">
120 • ${articleDate}
121 </span>
122 </#if>
123 </div>
124 </div>
125 </a>
126 </#list>
127 </div>
128 </#if>
129 </div>
130</div>
