# \[Devices\] Getting the real names of integrations

**URL:** <https://community.gladysassistant.com/t/appareils-avoir-le-vrai-nom-des-integrations/10559>\
**Category:** Demande de fonctionnalités\
**Tags:** in-progress\
**Created:** [August 14, 2026, 4:54pm UTC](https://community.gladysassistant.com/t/appareils-avoir-le-vrai-nom-des-integrations/10559 "2026-08-14T16:54:55Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![mutmut](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/mutmut/32/14064_2.png) [@mutmut](https://community.gladysassistant.com/u/mutmut)\
**Post date:** [August 14, 2026, 4:54pm UTC](https://community.gladysassistant.com/t/appareils-avoir-le-vrai-nom-des-integrations/10559/1 "2026-08-14T16:54:55Z")

</div>

In the new Devices page, we should use the real names of the integrations instead of the Docker image tags:

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/1/4/141907aab16db6968c63e1176a9e8b6334448cd2.png)  
ext-callemand-gladys-melcould-home → MELCloud Home

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [August 15, 2026, 2:00pm UTC](https://community.gladysassistant.com/t/appareils-avoir-le-vrai-nom-des-integrations/10559/2 "2026-08-15T14:00:55Z")

</div>

Done in this PR [Display integration names on the devices list by cicoub13 · Pull Request #2886 · GladysAssistant/Gladys · GitHub](https://github.com/GladysAssistant/Gladys/pull/2886)

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/5/6/56a8c669a292b6f1d361973e213c40781f259fe7.png)

There may be duplicates, so I specified when it’s a Community Integration + the exact suffix when the same name appears multiple times.

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [August 15, 2026, 2:26pm UTC](https://community.gladysassistant.com/t/appareils-avoir-le-vrai-nom-des-integrations/10559/3 "2026-08-15T14:26:43Z")

</div>

Just like on the ‹&nbsp;services&nbsp;› page!

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [August 15, 2026, 2:31pm UTC](https://community.gladysassistant.com/t/appareils-avoir-le-vrai-nom-des-integrations/10559/4 "2026-08-15T14:31:57Z")

</div>

> [@GBoulvin](#):
>
> Just like on the **Services** page!

What is the **Services** page?

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [August 15, 2026, 2:34pm UTC](https://community.gladysassistant.com/t/appareils-avoir-le-vrai-nom-des-integrations/10559/5 "2026-08-15T14:34:24Z")

</div>

Settings, services

 ![1000012783](https://gladys-assistant-community.b-cdn.net/uploads/default/original/3X/f/1/f1e8d348c9ca5dde7cab4861b5cc5fb4528cc8d4.png)

---

<div class="post-metadata">

**Author:** ![mutmut](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/mutmut/32/14064_2.png) [@mutmut](https://community.gladysassistant.com/u/mutmut)\
**Post date:** [August 15, 2026, 2:35pm UTC](https://community.gladysassistant.com/t/appareils-avoir-le-vrai-nom-des-integrations/10559/6 "2026-08-15T14:35:15Z")

</div>

oh yes, I hadn’t seen that one! 🙂

---

<div class="post-metadata">

**Author:** ![cursor-bot](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cursor-bot/32/22252_2.png) [@cursor-bot](https://community.gladysassistant.com/u/cursor-bot)\
**Post date:** [August 18, 2026, 2:16am UTC](https://community.gladysassistant.com/t/appareils-avoir-le-vrai-nom-des-integrations/10559/7 "2026-08-18T02:16:32Z")

</div>

Hi everyone!

This topic is now **in development**.

A PR has been opened to display the real name of integrations on the Settings → Services page:

> <https://github.com/GladysAssistant/Gladys/pull/2942>
>
> Implements feature request: https://community.gladysassistant.com/t/appareils-av…oir-le-vrai-nom-des-integrations/10559
> 
> \### Description
> 
> The devices part of this forum request was already shipped in #2886. This PR covers the remaining part reported in reply #3 and confirmed by the author: the same problem exists in \*\*Settings → Services\*\*, which still lists community integrations under their raw service name — the docker image based selector (\`ext-callemand-gladys-melcould-home\`) instead of their real name (\`MELCloud Home\`).
> 
> What changes on the services page:
> 
> \- a community integration is listed under its manifest name, the same title as its card in the integration catalog, and still falls back to the raw service name when there is no manifest name;
> \- it carries the same \`Community\` tag as in the catalog, so it stays distinguishable from a built-in integration with a similar name;
> \- when two community integrations display the same name (two repositories publishing the same manifest name, or dev installs), each one carries its technical identity next to its name — exactly the rule introduced in #2886;
> \- the list is sorted on the label it actually displays: a built-in integration is now sorted under its translated title instead of its service name, and a community one under its real name instead of its \`ext-…\` selector.
> 
> The technical identity of every service stays visible: the \`Internal name: …\` line under the name is unchanged.
> 
> Implementation notes:
> 
> \- the disambiguation helper written for the devices list is reused, not duplicated: \`disambiguateIntegrationNames\` moved from \`front/src/routes/devices/integrationLinks.js\` to \`front/src/utils/integrationNames.js\`, and both pages import it from there (the devices page behaviour is unchanged);
> \- the integration lookup that \`ServiceItem\` did inline moved to \`front/src/routes/settings/settings-service/serviceIntegration.js\`, which resolves the display identity of a service (name, translation key, community flag, integration link) the same way the devices page does;
> \- no server change, no new translation key: \`integration.tags.external\` already exists in every language file, and \`GET /api/v1/service\` already returns the service manifest.
> 
> This PR was created by an automated Claude Code run.
> 
> \## Forum
> 
> Forum: https://community.gladysassistant.com/t/appareils-avoir-le-vrai-nom-des-integrations/10559
> 
> \### Checklist
> 
> \- \[\] Tests pass: \`cd server && npm run coverage\` (Codecov requires 100% coverage on changed lines) and Cypress (\`npm run cypress:run\`) if the UI changed
> \- \[x\] Linter and prettier pass on both front and server (\`npm run eslint\`, \`npm run prettier\`)
> \- \[x\] No undocumented breaking change
> 
> Front only change: \`npm run prettier-check\`, \`npm run eslint\`, \`npm run compare-translations\` and \`npm run build\` all pass locally. No server file is touched, so the server suite and Codecov patch coverage are not impacted. Cypress was not run locally (binary unavailable in this environment); there is no E2E spec covering the services settings page, and CI runs it anyway.
> 
> \---
> 🤖 Generated with \[Claude Code\](https://claude.com/claude-code)

Feel free to follow the PR, test (optional, especially for small requests) and give your feedback here if needed.
