---
updatedAt: 2025-10-01T10:55:59.000Z
agentTools:
  projectIndex: https://docs.quable.com/llms.txt
---

# Quable Apps

Vous avez besoin d'une intégration spécifique ? Intégrez-la directement dans le PIM

<Callout icon="🛎️" theme="default">
  ### Abonnement Quable App

  Les Quable App sont des **options soumises à abonnement**.

  ➡️ Pour obtenir davantage d'informations, veuillez contacter votre gestionnaire CSM
</Callout>

Les Quable Apps fournissent des fonctionnalités supplémentaires directement dans votre Quable PIM. Elles permettent à des parties externes ou à des partenaires d'accéder de manière sécurisée au contenu de votre PIM Quable afin de fournir une fonction ou un service à tous les contributeurs.

## Administrateurs

La page **Quable Apps** est celle où vous pouvez trouver et gérer toutes les applications (personnalisées ou générique) installées sur votre PIM. Sur la page suivante, vous trouverez un tableau avec toutes vos applications installées, ainsi que leurs données.

<Image title="Capture d’écran 2022-10-27 à 17.00.31.png" alt={2844} align="center" width="80%" src="https://files.readme.io/0e578b3-Capture_decran_2022-10-27_a_17.00.31.png" />

### Créer une connexion

Pour ajouter une nouvelle connexion, cliquez sur le bouton **Créer** :

<Image title="b_Create_FR.png" alt={168} align="center" width="auto" src="https://files.readme.io/e423806-b_Create_FR.png" />

Un formulaire s'affiche pour définir la connexion et ses propriétés.

<Image title="Capture d’écran 2022-10-27 à 17.01.45.png" alt={2847} align="center" width="80%" src="https://files.readme.io/8eaf106-Capture_decran_2022-10-27_a_17.01.45.png" />

<HTMLBlock>{`
<div></div>
<table style="background-color:#ffff">
<tr style="background-color:#eceff1"><th width=30%">Information</th><th>Description</tr>
<tr style="background-color:#ffff"><td><strong>Nom d'affichage</strong></td><td>Saisissez un nom descriptif pour la connexion.</td></tr>
<tr style="background-color:#ffff"><td><strong>Code</strong></td><td>Saisissez une valeur alphanumérique pour identifier la connexion.</p><p><strong>Note</strong> : Cette valeur ne peut pas être modifiée après la création de la connexion.</td></tr>
<tr style="background-color:#ffff"><td><strong>Description</strong></td><td>Saisissez du texte pour décrire le but de la connexion.</td></tr>
<tr style="background-color:#ffff"><td><strong>Type d'information</strong></td><td>Spécifier le type d'information à envoyer :</p><ul><li><strong>Document</strong> - pour envoyer des informations sur le document.<br>Vous devez ensuite sélectionner un <strong>Type de document</strong><p></li></ul></td></tr>
<tr style="background-color:#ffff"><td><strong>Font Awesome icône</strong></td><td>Saisissez le nom d'une <a href="https://fontawesome.com/v5/cheatsheet">Icône Font Awesome</a> à utiliser en icône de la QuableApp.</td></tr>
<tr style="background-color:#ffff"><td><strong>URI de l'app externe</strong></td><td>Saisissez l'URI de l'application qui doit être appelée par le PIM.</td></tr>
<tr style="background-color:#ffff"><td><strong>Type d'authentification</strong></td><td>Sélectionnez le type d'authentification à utiliser et saisissez la valeur dans la zone de saisie appropriée :<p><ul><li><strong>Token</strong> - une chaîne aléatoire de lettres et de chiffres.<p></li><li><strong>Paramètre</strong> - corps de requête JSON.</li></ul></td></tr>
</table>
<style></style>
`}</HTMLBlock>

Une fois que vous avez saisi toutes les informations, cliquez sur le bouton **Appliquer** pour enregistrer la nouvelle application.\
Vous pouvez aussi cliquer sur le fil d'ariane en haut de page pour revenir à la page **Quable Apps** sans enregistrer l'application.

### Modification d'une application

Vous pouvez modifier une connexion en la sélectionnant dans la liste et en cliquant sur l'icône "Editer"

<Image title="Capture d’écran 2022-10-27 à 16.54.45.png" alt={162} align="center" width="auto" src="https://files.readme.io/ad2a780-Capture_decran_2022-10-27_a_16.54.45.png" />

### Suppression d'une application

Vous pouvez supprimer une connexion en la sélectionnant dans la liste de la page **QuableApp** et en cliquant sur le bouton **Supprimer**.

<Image title="Capture d’écran 2022-10-27 à 16.54.45 copie.png" alt={162} align="center" width="auto" src="https://files.readme.io/a4aa64c-Capture_decran_2022-10-27_a_16.54.45_copie.png" />

Une boîte de dialogue s'affiche pour annuler ou confirmer la suppression.

<Image title="d_confirmDelete_FR.png" alt={456} align="center" width="auto" src="https://files.readme.io/9821ecd-d_confirmDelete_FR.png" />

> ❗️ Attention
>
> Cette action est irréversible. Une fois qu'une connexion a été supprimée, elle ne peut pas être récupérée.

## Intégrateurs

### Appel de l'application externe par Quable

> 🚧 Prérequis
>
> Pour pouvoir connecter une application tierce, vous devez avoir des connaissances sur le mécanisme d'authentification, les en-têtes, les points de terminaison et les paramètres.

> 👍
>
> Les communications avec les applications tierces sont basées sur les principes REST et suivent les directives [RFC 2119](https://www.rfc-editor.org/info/rfc2119).

Quable PIM prend les informations que vous avez saisies lors de la création de la connexion et les utilise pour "communiquer".

#### Fonctionnement

Lorsqu'un utilisateur du PIM cliquera sur le bouton, un appel API sera fait sur l'API Quable PIM. L'API Quable va appeler en "back" l'URL fournie dans la connexion avec les paramètres demandés et attendra une réponse précise (cf plus bas).

Cette réponse comportera une URL et c'est celle-ci qui sera chargée dans le pop-in que l'utilisateur verra s'afficher.

**Appel de l'URI fournie dans le back-office**

L'API Quable effectue un appel <code>POST</code> à l'URI fournie en y ajoutant les paramètres fournies

```curl
curl --request POST \
  --url http://www.domain.tld/myInapp
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
...
```

Voici le détail :

<Table align={["left","left"]}>
  <thead>
    <tr>
      <th>

      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        **Request** 
      </td>

      <td>
        Verbe / méthode HTTP confirmant que des informations sont envoyées dans le corps de requête:\ <code>POST</code>
      </td>
    </tr>

    <tr>
      <td>
        **URL** 
      </td>

      <td>
        L'adresse de la connexion
      </td>
    </tr>

    <tr>
      <td>
        **Headers** 
      </td>

      <td>
        Identifie le format des informations envoyées :  

        <code>Accept: application/json</code>\ <code>Content-Type: application/json</code>
      </td>
    </tr>
  </tbody>
</Table>

Ensuite, vient le corps de la requête. Il comprend les informations à traiter et les instructions de réponse requises

```json
"data": {
    "quableInstanceName": "my-instance",
    "userName": "johnDoe",
    "userEmail": "jonhDoe@domain.com",
    "userId": 153,
    "sourceAction": "document_page",
    "documentIds": [
        "001234",
        "A23979"
    ],
    "notificationCallback": {
        "url": "http://my-instance.quable.com/myservice",
        "token": "abc1defgh23ijkl4mnopq56urstuv78wxyz9",
        "method": "POST"
    }
}
```

Les données contiennent trois parties : Les informations d'identité, les informations de traitement, et les instructions de rappel.

En voici la répartition :

<Table align={["left","left"]}>
  <thead>
    <tr>
      <th>

      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        Identité
      </td>

      <td>
        Informations identifiant Quable PIM et l'utilisateur demandant accès à l'application externe :  

        "quableInstanceName"\
        "userName"\
        "userId"\
        "userEmail"
      </td>
    </tr>

    <tr>
      <td>
        Informations sur le traitement
      </td>

      <td>
        Informations sur le type de contenu à traiter :  

        "sourceAction"\
        "documentIds"
      </td>
    </tr>

    <tr>
      <td>
        Instructions de rappel
      </td>

      <td>
        L'URL de l'API Quable à appeler en fin de traitement afin d'envoyer une notification à l'utilisateur - si désiré :  

        "notificationCallback.url"\
        "notificationCallback.token"\
        "notificationCallback.method"
      </td>
    </tr>
  </tbody>
</Table>

### Réponse de l'application externe

L'application tierce reçoit un appel depuis l'API Quable avec les informations données dans la connexion et les données sur l'utilisateur et les objets à traiter.\
Afin que le PIM puisse proposer le contenu de l'application tierce à l'utilisateur, cette dernière doit répondre avec une code HTTP 200 et un corp de requête comme ci-dessous.

* Succès - <code>200</code>:

```json Réponse de l'Application Tierce au call de l'API Quable
{
  "url": "https://my-app.domain.tld/my-app-form",
  "err": 0,
}
```

Toute réponse autre qu'un code HTTP 200 et un body contenant la valeur "0" pour l'attribut "err" sera considérée comme une erreur et indiquée comme telle à l'utilisateur.

### Gestion du contenu par l'application externe

Si toutes les conditions sont réunies, l'URL fournie dans le corps de requête sera appelée dans le pop-in et c'est ensuite l'application tierce qui gère son contenu.