> For the complete documentation index, see [llms.txt](https://university.gonexa.fr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://university.gonexa.fr/doc/advanced-features/custom-query/custom-query-single-result.md).

# Créer une requête personnalisée avec un seul résultat

Récupérer le contact décisionnaire lié à mon compte

## Exemple de requête personnalisée en lien avec l'objet principal

**Récupérer le contact décisionnaire lié à mon compte**

Si l'objet principal est Compte et que nous souhaitons récupérer le contact de type décisionnaire pour afficher son nom et prénom dans le document généré

* Depuis votre modèle de document, rendez-vous dans le composant "Assistant Gonexa"
* Cliquez sur "Requête personnalisée"
* Choisissez l'objet Salesforce concerné. Dans notre cas il s'agit de "Contact"
* L'étiquette s'alimente par défaut mais vous pouvez la modifier pour plus de clarté dans le modèle
* Sélectionnez "Uniquement le premier enregistrement"
* Rédiger la requête de récupération de l'ID, cette requête SOQL vous permet de récupérer l'enregistrement que vous souhaitez selon la manière suivante :

![Requête personnalisée sur Contact](https://4198981723-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTYUzkIngX1MnHE8kOJDR%2Fuploads%2FVUFYsu4aEmrLd7WMfVlQ%2Frequete-personnalisee-2.png?alt=media)

**Comment rédiger une Requête qui ne renvoie qu'un seul résultat avec un lien avec l'objet principal**

La syntaxe `SELECT Id FROM [objet] WHERE [critère1] AND [critère2]` permet de récupérer un record précis répondant aux critères définis

**Paramètres :**

* `[objet]` = l'objet sur lequel porte la requête (ex. : `Contact`)
* `[critère1]` = critère **obligatoire** permettant de récupérer uniquement les enregistrements liés à l'objet principal. Il doit faire le lien avec le `{RecordId}` (ex. : `AccountId = {RecordId}`).
* `[critère2]` = *(optionnel)* : critère supplémentaire permettant de cibler plus précisément l'enregistrement recherché (ex. : `Type__c = 'Décisionnaire'`)

## Exemple de requête personnalisée sans lien avec l'objet principal

Dans le cas où on souhaite afficher des informations sur la Session de formation, objet isolé, initialement inaccessible. On ajoutera une requête personnalisée "Session de formation" qui renvoie un seul résultat comme la date de la prochaine session de formation.

**Data model avec un objet personnalisé**

![Data model avec un objet personnalisé](https://4198981723-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTYUzkIngX1MnHE8kOJDR%2Fuploads%2FJi7PZkONvKd91yuqfQhh%2Frequete-personnalisee-3.png?alt=media)

* Depuis votre modèle de document, rendez-vous dans le composant "Assistant Gonexa"
* Cliquez sur "Requête personnalisée"

![Assistant Gonexa - Requête personnalisée](https://4198981723-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTYUzkIngX1MnHE8kOJDR%2Fuploads%2FIYq47mXU7TxVoNEGBEhJ%2Frequete-personnalisee-4.png?alt=media)

* Choisissez l'objet Salesforce concerné. Dans notre cas il s'agit de "Session de formation"
* L'étiquette s'alimente par défaut mais vous pouvez la modifier pour plus de clarté dans le modèle
* Sélectionnez "Uniquement le premier enregistrement"
* Rédiger la requête de récupération de l'ID, cette requête SOQL vous permet de récupérer l'enregistrement que vous souhaitez selon la manière suivante :

![Requête personnalisée sur Session de formation](https://4198981723-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTYUzkIngX1MnHE8kOJDR%2Fuploads%2FRnPpSfpeKs8wSlVLGdQW%2Frequete-personnalisee-5.png?alt=media)

**Comment rédiger une Requête qui ne renvoie qu'un seul résultat sans lien avec l'objet principal**

La syntaxe `SELECT Id FROM [objet] WHERE [critère]` permet de récupérer un record précis répondant au critère défini

**Paramètres :**

* `[objet]` = l'objet sur lequel porte la requête (ex. : `Session__c`)
* `[critère]` = critère selon lequel récupérer le bon record (ex. : `Name = 'Formation'`)

{% hint style="success" %}
**Pour exemple**

Dans notre exemple, on veut récupérer la session de formation nommée "Formation Gonexa" créé le plus récemment. La requête sera sera :

```
SELECT Id FROM Session__c WHERE Name = 'Formation Gonexa' ORDER BY CreatedDate Asc
```

{% endhint %}

{% hint style="warning" %}
**Astuce**

Utilisez Salesforce Inspector pour trouver la requête qui permet de renvoyer le bon record.
{% endhint %}

## Créer l'objet enfant de la requête personnalisée "Session de formation"

Dans le cas où on souhaite afficher les certifications de la session de formation, on ajoutera un objet enfant à l'objet secondaire.

**Data model avec un objet personnalisé et un objet enfant**

![Data model avec un objet personnalisé et un objet enfant](https://4198981723-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTYUzkIngX1MnHE8kOJDR%2Fuploads%2FN9HJTXGD6I70xHXv5eIX%2Frequete-personnalisee-6.png?alt=media)

* Toujours depuis la configuration du modèle de document et dans le bloc "Assistant Gonexa" cliquez sur "Objet enfant" en dessous de votre requête personnalisée
* Paramétrez l'objet comme d'habitude en suivant la procédure de création de tableau qui est similaire à l'objet principal


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://university.gonexa.fr/doc/advanced-features/custom-query/custom-query-single-result.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
