Extraction automatique du sujet et du sentiment des réponses Jotform avec Google Gemini
Ceci est uncontenant 14 nœuds.Utilise principalement des nœuds comme Code, Merge, Aggregate, GoogleSheets, JotFormTrigger. Extraction automatique du sujet et du sentiment des réponses Jotform avec Google Gemini
- •Informations d'identification Google Sheets API
- •Clé API Google Gemini
Nœuds utilisés (14)
Catégorie
{
"id": "s9tAZpHcsRFJjK3A",
"meta": {
"instanceId": "885b4fb4a6a9c2cb5621429a7b972df0d05bb724c20ac7dac7171b62f1c7ef40",
"templateCredsSetupCompleted": true
},
"name": "Automatic Topic & Sentiment Extraction from Jotform Responses with Google Gemini",
"tags": [
{
"id": "ddPkw7Hg5dZhQu2w",
"name": "AI",
"createdAt": "2025-04-13T05:38:08.053Z",
"updatedAt": "2025-04-13T05:38:08.053Z"
},
{
"id": "ZOwtAMLepQaGW76t",
"name": "Building Blocks",
"createdAt": "2025-04-13T15:23:40.462Z",
"updatedAt": "2025-04-13T15:23:40.462Z"
},
{
"id": "Kujft2FOjmOVQAmJ",
"name": "Engineering",
"createdAt": "2025-04-09T01:31:00.558Z",
"updatedAt": "2025-04-09T01:31:00.558Z"
}
],
"nodes": [
{
"id": "36ae4c6f-049d-475c-af85-9cca6affc769",
"name": "Google Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-32,
320
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash-exp"
},
"credentials": {
"googlePalmApi": {
"id": "YeO7dHZnuGBVQKVZ",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "8c3ecf36-96e7-4dfc-9ec2-0cf2d0425139",
"name": "Analyseur de Sentiments",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
0,
104
],
"parameters": {
"text": "=Perform sentiment analysis of the following {{ $json.body }} \n",
"batching": {},
"messages": {
"messageValues": [
{
"message": "You are an expert sentiment analyzer"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "8fdec511-d900-41a4-bf79-295a620f0b4e",
"name": "Analyseur de Sortie Structurée",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
208,
320
],
"parameters": {
"schemaType": "manual",
"inputSchema": "\n{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"Feedback Sentiment Output Schema\",\n \"description\": \"Schema for parsing AI sentiment analysis results from customer feedback submissions.\",\n \"type\": \"object\",\n \"properties\": {\n \"customer_name\": {\n \"type\": \"string\",\n \"description\": \"Name of the customer submitting feedback.\"\n },\n \"customer_email\": {\n \"type\": \"string\",\n \"description\": \"Email of the customer submitting feedback.\"\n },\n \"feedback_text\": {\n \"type\": \"string\",\n \"description\": \"Raw feedback text provided by the customer.\"\n },\n \"sentiment\": {\n \"type\": \"string\",\n \"enum\": [\"positive\", \"neutral\", \"negative\"],\n \"description\": \"Predicted sentiment label of the feedback.\"\n },\n \"confidence_score\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1,\n \"description\": \"Model confidence score for the sentiment classification (0-1).\"\n },\n \"key_phrases\": {\n \"type\": \"array\",\n \"items\": { \"type\": \"string\" },\n \"description\": \"Important keywords or topics extracted from the feedback.\"\n },\n \"summary\": {\n \"type\": \"string\",\n \"description\": \"A short AI-generated summary of the feedback.\"\n },\n \"alert_priority\": {\n \"type\": \"string\",\n \"enum\": [\"high\", \"medium\", \"low\"],\n \"description\": \"Priority level for team alerting based on sentiment and urgency.\"\n },\n \"timestamp\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"description\": \"Time when the feedback was received.\"\n }\n },\n \"additionalProperties\": false\n}"
},
"typeVersion": 1.3
},
{
"id": "ec24ab03-ffdd-412b-a66f-4b3d6bb04edd",
"name": "Ajouter ou mettre à jour une ligne dans la feuille",
"type": "n8n-nodes-base.googleSheets",
"position": [
880,
-112
],
"parameters": {
"columns": {
"value": {
"topics_keywords": "={{ $json.output[0].toJsonString() }}",
"feedback_analysis": "={{ $json.output.toJsonString() }}"
},
"schema": [
{
"id": "feedback_analysis",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "feedback_analysis",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "topics_keywords",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "topics_keywords",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"feedback_analysis"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/13iJ2sOSaCEekzRNrhkUirZX2llBnpwGi3gdhI4PWIFM/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "13iJ2sOSaCEekzRNrhkUirZX2llBnpwGi3gdhI4PWIFM",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/13iJ2sOSaCEekzRNrhkUirZX2llBnpwGi3gdhI4PWIFM/edit?usp=drivesdk",
"cachedResultName": "Jotform Feedback"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "Zjoxh2BUZ6VXGQhA",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "b3dbc129-bd64-420b-969b-9bec6a11f4d1",
"name": "Note Adhésive",
"type": "n8n-nodes-base.stickyNote",
"position": [
-608,
-416
],
"parameters": {
"color": 7,
"width": 352,
"height": 272,
"content": "\n\nUses Google Gemini AI for the sentiment analysis and topics + keyword extraction of Jotform content"
},
"typeVersion": 1
},
{
"id": "83b6913b-ff18-46c0-ba3e-b2c0d5fddedf",
"name": "Formater les Données du Formulaire",
"type": "n8n-nodes-base.code",
"position": [
-352,
-96
],
"parameters": {
"jsCode": "const outputString = JSON.stringify($input.first().json, null, 2);\nreturn [\n {\n json: {\n body: outputString\n }\n }\n ];"
},
"typeVersion": 2
},
{
"id": "78ffe47a-7836-45ed-a3b1-73f9ccff41d6",
"name": "Sujets et Mots-clés",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
0,
-400
],
"parameters": {
"text": "=Perform sentiment analysis of the following {{ $json.body }} \n",
"batching": {},
"messages": {
"messageValues": [
{
"message": "You are an expert sentiment analyzer"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "41b0cfcb-fa81-4c52-96a7-e6581bb057be",
"name": "Google Gemini Chat Model pour Sujets et Mots-clés",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-16,
-176
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash-exp"
},
"credentials": {
"googlePalmApi": {
"id": "YeO7dHZnuGBVQKVZ",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "5f5c238d-9705-4017-bdb8-0f6b1adbba15",
"name": "Analyseur de Sortie Structurée pour Sujets et Mots-clés",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
176,
-176
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"SurveyTopicKeywordExtraction\",\n \"description\": \"Schema for extracting topics, keywords, and sentiment insights from Jotform survey responses.\",\n \"type\": \"object\",\n \"properties\": {\n \"topics\": {\n \"type\": \"array\",\n \"description\": \"High-level themes or categories extracted from the survey answers.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"topic\": {\n \"type\": \"string\",\n \"description\": \"Descriptive name of the topic, e.g., 'Customer Support Experience'.\"\n },\n \"summary\": {\n \"type\": \"string\",\n \"description\": \"Short summary describing this topic based on the responses.\"\n },\n \"keywords\": {\n \"type\": \"array\",\n \"description\": \"List of key terms or phrases related to this topic.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"sentiment\": {\n \"type\": \"string\",\n \"enum\": [\"positive\", \"negative\", \"neutral\", \"mixed\"],\n \"description\": \"Overall sentiment associated with this topic.\"\n },\n \"importance_score\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1,\n \"description\": \"Relative importance or weight of this topic (0-1 scale).\"\n }\n },\n \"required\": [\"topic\", \"keywords\"]\n }\n },\n \"global_keywords\": {\n \"type\": \"array\",\n \"description\": \"Top-level keywords or phrases representing the overall survey themes.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"insights\": {\n \"type\": \"array\",\n \"description\": \"Key takeaways or AI-generated insights derived from the data mining.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"generated_at\": {\n \"type\": \"string\",\n \"format\": \"date-time\",\n \"description\": \"Timestamp of when this analysis was generated.\"\n }\n }\n}\n"
},
"typeVersion": 1.3
},
{
"id": "041a9363-5f09-46ed-9cd4-4cc17dbe60c8",
"name": "Déclencheur JotForm",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
-576,
-96
],
"webhookId": "bddebb80-2e71-43e6-941e-4d599f70d0e6",
"parameters": {
"form": "252797914459475"
},
"credentials": {
"jotFormApi": {
"id": "IcptK658rWIj1G45",
"name": "JotForm account"
}
},
"typeVersion": 1
},
{
"id": "4981c2c9-a760-43d4-ad81-dc60f545bffb",
"name": "Fusionner",
"type": "n8n-nodes-base.merge",
"position": [
464,
-112
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "e6ec2964-d484-4d8f-9c92-515ad9904cd0",
"name": "Agréger",
"type": "n8n-nodes-base.aggregate",
"position": [
672,
-112
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "output"
}
]
}
},
"typeVersion": 1
},
{
"id": "95125c3d-1fc8-4339-a91c-f4f7527fb2de",
"name": "Note Adhésive 1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
-464
],
"parameters": {
"color": 4,
"width": 528,
"height": 432,
"content": "## Topics and Keyword Extraction using Google Gemini"
},
"typeVersion": 1
},
{
"id": "95fc87ef-b095-41d0-9ce1-9a7ef11facc6",
"name": "Note Adhésive 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
0
],
"parameters": {
"color": 4,
"width": 528,
"height": 464,
"content": "## Sentiment Analysis using Google Gemini"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "6f6e2249-0884-47a8-af5e-bcc4bac7a61c",
"connections": {
"4981c2c9-a760-43d4-ad81-dc60f545bffb": {
"main": [
[
{
"node": "e6ec2964-d484-4d8f-9c92-515ad9904cd0",
"type": "main",
"index": 0
}
]
]
},
"e6ec2964-d484-4d8f-9c92-515ad9904cd0": {
"main": [
[
{
"node": "ec24ab03-ffdd-412b-a66f-4b3d6bb04edd",
"type": "main",
"index": 0
}
]
]
},
"041a9363-5f09-46ed-9cd4-4cc17dbe60c8": {
"main": [
[
{
"node": "83b6913b-ff18-46c0-ba3e-b2c0d5fddedf",
"type": "main",
"index": 0
}
]
]
},
"78ffe47a-7836-45ed-a3b1-73f9ccff41d6": {
"main": [
[
{
"node": "4981c2c9-a760-43d4-ad81-dc60f545bffb",
"type": "main",
"index": 0
}
]
]
},
"8c3ecf36-96e7-4dfc-9ec2-0cf2d0425139": {
"main": [
[
{
"node": "4981c2c9-a760-43d4-ad81-dc60f545bffb",
"type": "main",
"index": 1
}
]
]
},
"83b6913b-ff18-46c0-ba3e-b2c0d5fddedf": {
"main": [
[
{
"node": "8c3ecf36-96e7-4dfc-9ec2-0cf2d0425139",
"type": "main",
"index": 0
},
{
"node": "78ffe47a-7836-45ed-a3b1-73f9ccff41d6",
"type": "main",
"index": 0
}
]
]
},
"36ae4c6f-049d-475c-af85-9cca6affc769": {
"ai_languageModel": [
[
{
"node": "8c3ecf36-96e7-4dfc-9ec2-0cf2d0425139",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"8fdec511-d900-41a4-bf79-295a620f0b4e": {
"ai_outputParser": [
[
{
"node": "8c3ecf36-96e7-4dfc-9ec2-0cf2d0425139",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"ec24ab03-ffdd-412b-a66f-4b3d6bb04edd": {
"main": [
[]
]
},
"5f5c238d-9705-4017-bdb8-0f6b1adbba15": {
"ai_outputParser": [
[
{
"node": "78ffe47a-7836-45ed-a3b1-73f9ccff41d6",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"41b0cfcb-fa81-4c52-96a7-e6581bb057be": {
"ai_languageModel": [
[
{
"node": "78ffe47a-7836-45ed-a3b1-73f9ccff41d6",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Intermédiaire
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Ranjan Dailata
@ranjancseA Professional based out of India specialized in handling AI-powered automations. Contact me at ranjancse@gmail.com
Partager ce workflow