Sauvegarde complète d'Airtable

Avancé

Ceci est unEngineering, DevOps, AIworkflow d'automatisation du domainecontenant 19 nœuds.Utilise principalement des nœuds comme If, Set, AwsS3, Slack, Airtable, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Sauvegarde de la base de données Airtable vers S3

Prérequis
  • Access Key et Secret AWS
  • Token Bot Slack ou URL Webhook
  • Clé API Airtable
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "id": "YeYi657TmrNBAlHy",
  "meta": {
    "instanceId": "473c658c7288f697d42ad8adb392c78c9ea1b1c3a9d169c508028d7c271b8621",
    "templateCredsSetupCompleted": true
  },
  "name": "Airtable Full Backup",
  "tags": [],
  "nodes": [
    {
      "id": "2cfec4e1-08ad-4363-a3af-5aa77174ea1a",
      "name": "Airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        380,
        -40
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "yourbase",
          "cachedResultUrl": "https://airtable.com/yourbase",
          "cachedResultName": "Sample Base"
        },
        "resource": "base",
        "operation": "getSchema"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "U1WMD4Gt9NhWpX3s",
          "name": "Airtable"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "45e6e8e3-2b72-44ae-ae5a-84ade2dfb59b",
      "name": "Boucler sur les éléments",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        600,
        -40
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "8c731bd7-54a7-443f-91de-1dedfcb79620",
      "name": "Créer les métadonnées de la table",
      "type": "n8n-nodes-base.set",
      "position": [
        1040,
        60
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "cea4432c-e31c-43bd-adea-446658a96ab5",
              "name": "fileName",
              "type": "string",
              "value": "={{ $json.name.replace(/[^\\p{L}\\p{N}\\s_-]+/gu, '').trim().replace(/\\s+/g, '_')                      \n}}"
            },
            {
              "id": "34f5e44c-1d62-47ac-875b-9bbe698ffc0d",
              "name": "tableName",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "4a06c76d-7ac3-4fe9-96e3-003e80e0bf1e",
              "name": "tableID",
              "type": "string",
              "value": "={{ $json.id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "57d1b06e-5265-4beb-b53f-9be2f9f1f300",
      "name": "Extraire les enregistrements",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1260,
        60
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "yourbase",
          "cachedResultUrl": "https://airtable.com/yourbase",
          "cachedResultName": "LifeOS"
        },
        "table": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.tableID }}"
        },
        "options": {},
        "operation": "search"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "U1WMD4Gt9NhWpX3s",
          "name": "Airtable"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "0872652a-6924-4a56-8058-69b51ecc8ee2",
      "name": "Convertir en fichier",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1480,
        60
      ],
      "parameters": {
        "options": {
          "fileName": "={{ $('Create Table Metadata').item.json.fileName }}.csv"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "167783d9-3fad-4a3c-827b-911b8d3587f7",
      "name": "AWS S3",
      "type": "n8n-nodes-base.awsS3",
      "position": [
        1700,
        60
      ],
      "parameters": {
        "fileName": "={{ $('Create Table Metadata').item.json.fileName }}.csv",
        "operation": "upload",
        "bucketName": "aired-out",
        "additionalFields": {
          "parentFolderKey": "={{ $('Set Week').item.json.currentWeek }}"
        }
      },
      "credentials": {
        "aws": {
          "id": "NijLkxXPqg88tIuO",
          "name": "AWS S3 Access"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "c766b901-e06c-457c-9407-a999b7eaecd0",
      "name": "Nettoyage mensuel",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -320,
        500
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "months"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3fb466cd-90ad-4757-9df1-b7e2c317b454",
      "name": "Définir les horodatages",
      "type": "n8n-nodes-base.set",
      "position": [
        -80,
        500
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "ca8f6d53-152c-44ea-b0c8-eb5a7ba7fbf4",
              "name": "cutoffDate",
              "type": "string",
              "value": "={{ $now.minus({ weeks: 4 }).toFormat(\"kkkk-'W'WW\") }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "dacaac6b-1025-4c57-82f2-d17b387c4258",
      "name": "Si",
      "type": "n8n-nodes-base.if",
      "position": [
        340,
        500
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "9c09f6cc-9313-42ba-b48e-c8cc2faaebac",
              "operator": {
                "type": "dateTime",
                "operation": "before"
              },
              "leftValue": "={{ $json.Key.replace(/\\/$/, '') }}",
              "rightValue": "={{ $('Set Timestamps').item.json.cutoffDate }}"
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "e279fa0d-af6c-4dc2-9ac3-89e3a08280f8",
      "name": "Supprimer le fichier",
      "type": "n8n-nodes-base.awsS3",
      "position": [
        560,
        420
      ],
      "parameters": {
        "resource": "folder",
        "folderKey": "={{ $('List Folders').item.json.Key }}",
        "operation": "delete",
        "bucketName": "aired-out"
      },
      "credentials": {
        "aws": {
          "id": "NijLkxXPqg88tIuO",
          "name": "AWS S3 Access"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "8a2e4f1e-8a07-4f77-a05d-90cfca9d96da",
      "name": "Créer un dossier",
      "type": "n8n-nodes-base.awsS3",
      "position": [
        140,
        -40
      ],
      "parameters": {
        "resource": "folder",
        "bucketName": "aired-out",
        "folderName": "={{ $json.currentWeek }}",
        "additionalFields": {}
      },
      "credentials": {
        "aws": {
          "id": "NijLkxXPqg88tIuO",
          "name": "AWS S3 Access"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "69d7bfdc-657a-402c-b9ef-f230660be1f9",
      "name": "Lister les dossiers",
      "type": "n8n-nodes-base.awsS3",
      "position": [
        120,
        500
      ],
      "parameters": {
        "options": {},
        "resource": "folder",
        "operation": "getAll",
        "bucketName": "aired-out"
      },
      "credentials": {
        "aws": {
          "id": "NijLkxXPqg88tIuO",
          "name": "AWS S3 Access"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "35a136e1-4acc-4754-952e-69cf940219b0",
      "name": "Définir la semaine",
      "type": "n8n-nodes-base.set",
      "position": [
        -80,
        -40
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "f5e7fb15-bf9c-4f6d-9476-15320ff150a6",
              "name": "currentWeek",
              "type": "string",
              "value": "={{ $now.toFormat(\"kkkk-'W'WW\") }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ca332df0-313d-44fe-81da-f4fabcad8cf6",
      "name": "Sauvegarde hebdomadaire",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -320,
        -40
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "triggerAtHour": 12
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "68d97be1-f32f-4ada-85c3-7db8d3639262",
      "name": "Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        1260,
        -140
      ],
      "webhookId": "909deccb-0c0a-4243-ac3c-c69dd39f1ab4",
      "parameters": {
        "text": "=:floppy_disk: *Airtable Backup Complete*",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C08GPG2HTA4",
          "cachedResultName": "general"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "RKqLvV8Ij1tfFCYJ",
          "name": "Slack Content Bot"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "8f7bf5dd-1e42-4979-808a-99c6db31f89c",
      "name": "Aucune opération, ne rien faire",
      "type": "n8n-nodes-base.noOp",
      "position": [
        560,
        600
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c8ba25eb-0aed-42d0-8c55-420448eebce5",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        -220
      ],
      "parameters": {
        "width": 2240,
        "height": 520,
        "content": "## Airtable Weekly Backups\nEvery week backup all tables in an Airtable base into a dedicated week sub-folder in S3. Notify when complete."
      },
      "typeVersion": 1
    },
    {
      "id": "7c33f350-3f5c-4979-a176-bbdb3b8d663c",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        360
      ],
      "parameters": {
        "width": 1140,
        "height": 480,
        "content": "## Airtable Monthly Prune\nDelete backups > 1 month old"
      },
      "typeVersion": 1
    },
    {
      "id": "dcbb30d5-90da-44ef-991f-0a25cf67e01d",
      "name": "Agréger",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1040,
        -140
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "6ae12e8e-f949-48f7-977e-65f5bb49be9b",
  "connections": {
    "dacaac6b-1025-4c57-82f2-d17b387c4258": {
      "main": [
        [
          {
            "node": "e279fa0d-af6c-4dc2-9ac3-89e3a08280f8",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "8f7bf5dd-1e42-4979-808a-99c6db31f89c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "167783d9-3fad-4a3c-827b-911b8d3587f7": {
      "main": [
        [
          {
            "node": "45e6e8e3-2b72-44ae-ae5a-84ade2dfb59b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2cfec4e1-08ad-4363-a3af-5aa77174ea1a": {
      "main": [
        [
          {
            "node": "45e6e8e3-2b72-44ae-ae5a-84ade2dfb59b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "35a136e1-4acc-4754-952e-69cf940219b0": {
      "main": [
        [
          {
            "node": "8a2e4f1e-8a07-4f77-a05d-90cfca9d96da",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dcbb30d5-90da-44ef-991f-0a25cf67e01d": {
      "main": [
        [
          {
            "node": "68d97be1-f32f-4ada-85c3-7db8d3639262",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "69d7bfdc-657a-402c-b9ef-f230660be1f9": {
      "main": [
        [
          {
            "node": "dacaac6b-1025-4c57-82f2-d17b387c4258",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "57d1b06e-5265-4beb-b53f-9be2f9f1f300": {
      "main": [
        [
          {
            "node": "0872652a-6924-4a56-8058-69b51ecc8ee2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8a2e4f1e-8a07-4f77-a05d-90cfca9d96da": {
      "main": [
        [
          {
            "node": "2cfec4e1-08ad-4363-a3af-5aa77174ea1a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c766b901-e06c-457c-9407-a999b7eaecd0": {
      "main": [
        [
          {
            "node": "3fb466cd-90ad-4757-9df1-b7e2c317b454",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ca332df0-313d-44fe-81da-f4fabcad8cf6": {
      "main": [
        [
          {
            "node": "35a136e1-4acc-4754-952e-69cf940219b0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3fb466cd-90ad-4757-9df1-b7e2c317b454": {
      "main": [
        [
          {
            "node": "69d7bfdc-657a-402c-b9ef-f230660be1f9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0872652a-6924-4a56-8058-69b51ecc8ee2": {
      "main": [
        [
          {
            "node": "167783d9-3fad-4a3c-827b-911b8d3587f7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "45e6e8e3-2b72-44ae-ae5a-84ade2dfb59b": {
      "main": [
        [
          {
            "node": "dcbb30d5-90da-44ef-991f-0a25cf67e01d",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "8c731bd7-54a7-443f-91de-1dedfcb79620",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8c731bd7-54a7-443f-91de-1dedfcb79620": {
      "main": [
        [
          {
            "node": "57d1b06e-5265-4beb-b53f-9be2f9f1f300",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

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é ?

Avancé - Ingénierie, DevOps, Intelligence Artificielle

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.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds19
Catégorie3
Types de nœuds11
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Autonomous Work

Autonomous Work

@autonomouswork

Senior Solutions Architect · 10 years in Data, Cloud, & AI ⚡ Maximize the individual with low-friction systems for peak output 🌮 TACO stack. Views are my own.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34