Pretty cool!
Dans Zapier, on peut faire des templates, mais c’est vrai que ce serait bien de pouvoir générer des JSON!!
Make supporte les JSON aussi.
Lui a importé une chiée de JSON pour « entraîner » Claude, mais il existe un moyen plus simple.
Cursor supporte l’ajout de documentation personnalisé, alors tu peux coller l’URL de ta DOC…
CTRL + SHIFT + P
pour faire apparaître ton menu et sélectionne « Add New Custom Docs »
Ensuite, dans le chat on fait @DOCS et on choisis la doc qu’on vient d’ajouter:
Tada! 

{
"name": "Personalized Post-Purchase Email",
"nodes": [
{
"parameters": {
"path": "webhook-purchase", // Set a unique path for your webhook
"httpMethod": "POST",
"options": {}
},
"id": "4a30b74c-ed27-4668-8e68-c2e3a630ecd9",
"name": "Webhook Trigger",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
800,
300
],
"webhookId": "YOUR_WEBHOOK_ID" // Will be generated by n8n
},
{
"parameters": {
"url": "=https://api.yourwebsite.com/customer-history?email={{ $json.body.customerEmail }}", // Replace with your history API endpoint
"options": {},
"authentication": "none" // Configure authentication if needed
},
"id": "eb479841-8099-4537-b89b-4b9867446688",
"name": "Get Purchase History",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
1000,
300
],
"credentials": {} // Add credentials if needed
},
{
"parameters": {
"model": "gpt-4o", // Or choose another model
"prompt": "=A customer ({{ $json.body.customerName }}, {{ $json.body.customerEmail }}) just bought '{{ $json.body.productName }}' for {{ $json.body.purchaseAmount }}.\n\nTheir purchase history is:\n{{ JSON.stringify($node[\"Get Purchase History\"].json) }}\n\nWrite a short, friendly thank you email (body only, no subject) acknowledging the new purchase. If they have past purchases, briefly mention their loyalty or a related past item. Keep it under 100 words.",
"options": {}
},
"id": "6d6c847d-7417-4780-8a8b-b99996cd6166",
"name": "Generate Email Content (OpenAI)",
"type": "n8n-nodes-langchain.chatOpenAi",
"typeVersion": 1,
"position": [
1200,
300
],
"credentials": {
"openAiApi": { // Replace with your OpenAI credential name in n8n
"id": "YOUR_OPENAI_CREDENTIAL_ID",
"name": "Your OpenAI Credential Name"
}
}
},
{
"parameters": {
"to": "={{ $json.body.customerEmail }}",
"subject": "=Thank you for your purchase, {{ $json.body.customerName }}!",
"html": "={{ $node['Generate Email Content (OpenAI)'].json.text }}" // Assumes LLM output is in 'text' field
},
"id": "1ec54b09-7533-4280-8bf2-54407d6bf134",
"name": "Send Email (SendGrid)",
"type": "n8n-nodes-base.sendGrid", // Or use n8n-nodes-base.gmail, n8n-nodes-base.smtp etc.
"typeVersion": 1,
"position": [
1400,
300
],
"credentials": {
"sendGridApi": { // Replace with your SendGrid credential name in n8n
"id": "YOUR_SENDGRID_CREDENTIAL_ID",
"name": "Your SendGrid Credential Name"
}
}
}
],
"pinData": {},
"connections": {
"Webhook Trigger": {
"main": [
[
{
"node": "Get Purchase History",
"type": "main",
"index": 0
}
]
]
},
"Get Purchase History": {
"main": [
[
{
"node": "Generate Email Content (OpenAI)",
"type": "main",
"index": 0
}
]
]
},
"Generate Email Content (OpenAI)": {
"main": [
[
{
"node": "Send Email (SendGrid)",
"type": "main",
"index": 0
}
]
]
}
}
}
Bon… Ses automations sont un peu plus clean alors peut-être qu’il y a du bon à son approche. 
Ce serait bien de pouvoir éditer le JSON de nos automations directement et bypasser le visual builder!