> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://documentation.celestory.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# 💨 Importer vos datas d'un Google Sheet

🔰 Lien exemple: https://creator.celestory.io/project/8x5_uqKpY

✨ Lien export: https://api.celestory.io/play/ZTfV7kb5ch

Dans un 💨 Import Données, le catalogue de données est défini par une liste de pages de Menus vous permettant de naviguer entre vos différents produits ou services.

![](https://storage.crisp.chat/users/helpdesk/website/779b074e3bbe4400/df7751ce-deb5-446a-a119-fd1f84_rg7b7a.png)

L'actualisation est définie par le fait que les valeurs de cellules d'un Google Sheet (excel Google) sont directement importées en temps réel par l'App par une connectivité continue.

🔹 Pour en savoir plus sur la création de Menu:

http://help.celestory.io/fr/articles/4204688-creer-un-menu-et-ses-pages

🔸 Pour découvrir comment créer cette connectivité continue, allez sur le sous-graphe Bloc JS Import Cell dans le menu latéral gauche des modules.

⬛ Bloc Lancer JS

Ce bloc permet de lancer un code écrit en Javascript. Il suffit de copier/coller le code disponible ci dessous:

* * *

// spreadsheet

const apiKey = celestoryPoints.get('apiKey', '');

const spreadsheetId = celestoryPoints.get('id', '');

const spreadsheetCell = celestoryPoints.get('cell', '');

const spreadsheetSheet = celestoryPoints.get('sheet', '');

// load google apis to access google drive

await loadExternalScript('gapi', 'https://apis.google.com/js/api.js

try {

const cell = await new Promise((resolve, reject) => {

window.gapi.load('client:auth2', async () => {

try {

// Authenticate to google apis

await gapi.client.init({

apiKey,

discoveryDocs: '[https://sheets.googleapis.com/$discovery/rest?version=v4](https://sheets.googleapis.com/%24discovery/rest?version=v4)'

});

// Get spreadsheet range (single cell)

const spreadsheetRange = await gapi.client.sheets.spreadsheets.values.get({

spreadsheetId,

range: `${spreadsheetSheet}!${spreadsheetCell}`, // Get the given cell in the given sheet

});

// Get results

if (spreadsheetRange && spreadsheetRange.result && spreadsheetRange.result.values && spreadsheetRange.result.values.length === 1) {

// Spreadsheet & cell was found

resolve(spreadsheetRange.result.values0][0

} else {

// Spreadsheet or cell was not found

reject(new Error( `Cannot read cell ${spreadsheetCell} in sheet ${spreadsheetName} in spreadsheet ${spreadsheetId}`));

}

} catch (e) {

// An error occured

reject(e);

}

});

});

celestoryPoints.set('value', cell);

} catch (e) {

celestoryPoints.set('error', e.toString());

}

* * *

ou simplement de copier/coller un bloc Lancer Javascript appelé Import cellule pour importer une autre donnée d'une autre cellule.

![](https://storage.crisp.chat/users/helpdesk/website/87e56e8663752000/c81ed1db-f040-4fee-9a6b-389c8b_18o8gto.png)

Vous pouvez importer cette donnée de n'importe quelle feuille de n'importe quel spreadsheet de n'importe quel compte Google.

![](https://storage.crisp.chat/users/helpdesk/website/fa40647e78bc6000/89be686f-ffa9-46ea-8342-8fd777_oabasd.png)

Vous n'avez qu'à remplir dans la fenêtre d'édition du bloc JS les zones suivantes:

◾ apiKey:

C'est le compte Google qui est le propriétaire de la Spreadsheet qui doit cliquer sur ce lien

Laissez Quickstart par défaut, puis cliquez sur Next:

![](https://storage.crisp.chat/users/helpdesk/website/d91b013493767000/fb649a58-2dd5-4653-94c2-f9c944_s1ne5j.png)

Enfin copiez votre API Key et collez là dans le bloc.

![](https://storage.crisp.chat/users/helpdesk/website/991d090b8e453800/01eae405-f03a-4c38-8f60-d8af32_16ut4wp.png)

Puis vous donnez la clé apiKey correspondante.

◾ id:

Il s'agit de l'id de la Spreadsheet. Dans cet exemple, son url est indiqué sur le lien 2 ci-dessous:

L'id du lien 2 est donc:

1rd5oiw7rVUNVS2dKSV8sy_jemSyBjMR3eTEIzngYo6o  

◾ cell:

Il s'agit du nom de la cellule que vous voulez

connecter pour pouvoir la modifier par la suite et

l'importer automatiquement dans l'app.

Ex: B2

Il faudra créer autant de blocs JS "Import cellule" que de cellules à connecter.  

◾ sheet:

Il s'agit du feuillet (l'onglet en bas de la

Spreadsheet) sur lequel se trouve la cellule à

importer. Attention à bien écrire correctement son nom.

Le ⬛ Bloc JS se compose également de deux sorties et de deux points de valeur:  

🔹 D'abord la sortie par défaut prise si le code fonctionne.  

🔹 Si le code ne fonctionne pas, le flux est renvoyé vers catch.  

🔹 Enfin le point erreur va indiquer la nature de l'erreur en anglais.  

C'est pour cela que ce point de valeur est directement relié à l'inconnue du bloc d'Alerte qui suit, afin de donner un détail immédiat en cas d'aiguillage sur la sortie "catch".

🔹 Enfin, bien sur le point value est la valeur extraite de la cellule ciblée par le bloc JS.

C'est pour cela qu'elle est connectée à la value entrante d'un bloc 🟦 Assignation, afin d'associer cette valeur à celle d'une variable dont l'application se souviendra.