{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "cfc7a7c6-8ac4-4c18-a0f2-f30572e393f1",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "options": {},
        "formTitle": "Sales Tax Calculator",
        "formFields": {
          "values": [
            {
              "fieldLabel": "street",
              "placeholder": "321 Birch Road, Suite 400",
              "requiredField": true
            },
            {
              "fieldLabel": "city",
              "placeholder": "Saint Paul",
              "requiredField": true
            },
            {
              "fieldLabel": "state",
              "placeholder": "MN",
              "requiredField": true
            },
            {
              "fieldLabel": "zip",
              "placeholder": "55102"
            }
          ]
        },
        "formDescription": "Sales Tax Calculator"
      },
      "typeVersion": 2.2
    },
    {
      "id": "a1416047-5dc9-4514-b83d-d0b76f4ce92e",
      "name": "Calculate Sales tax",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        280,
        0
      ],
      "parameters": {
        "url": "https://sales-tax-calculator5.p.rapidapi.com/salestax.php",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "street",
              "value": "={{ $json.street }}"
            },
            {
              "name": "city",
              "value": "={{ $json.city }}"
            },
            {
              "name": "state",
              "value": "={{ $json.state }}"
            },
            {
              "name": "zip",
              "value": "={{ $json.zip }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "x-rapidapi-host",
              "value": "sales-tax-calculator5.p.rapidapi.com"
            },
            {
              "name": "x-rapidapi-key",
              "value": "your key"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "27ad345c-347e-4b57-a6be-b9d610163013",
      "name": "Re Fromat",
      "type": "n8n-nodes-base.code",
      "position": [
        580,
        0
      ],
      "parameters": {
        "jsCode": "let rows = [];\nlet totalTaxRate = 0;\n\n// Iterate over the rate_details in the input data\n$input.first().json.rate_details.forEach(tax => {\n  // Push each row with the necessary columns (Tax Agency, Tax Rate, Overall Tax Rate)\n  rows.push([\n    tax.tax_agency,  // Tax Agency\n    tax.tax_rate,    // Tax Rate\n    tax.tax_rate     // Overall Tax Rate (same for each agency in this case)\n  ]);\n\n  // Accumulate the overall tax rate for the total\n  totalTaxRate += tax.tax_rate;\n});\n\n// Add the total row at the end\nrows.push([\n  \"Total\",               // Label for Total\n  \"\",                    // Empty field for Tax Rate\n  totalTaxRate           // Sum of all Tax Rates\n]);\n\n// Return the rows so they can be used by the next node\nreturn [{ json: { rows } }];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "8c9c5b39-9e87-47e5-8883-ab0d389feef2",
      "name": "Append In Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        860,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "rows": "={{ $json.rows }}"
          },
          "schema": [
            {
              "id": "rows",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "rows",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "rows"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultUrl": "",
          "cachedResultName": "Sales tax"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "8c3b0d7d-724d-46a1-afad-8667e5e285dc",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -980,
        -220
      ],
      "parameters": {
        "width": 840,
        "height": 740,
        "content": "# Sales Tax Calculator Automation Workflow for Accurate Tax Calculation\n\n## Description:\nThis automation workflow calculates and stores sales tax rates based on user-provided address information using a form submission. It integrates with the Sales Tax API, processes the data, and stores results in a Google Sheet for easy access.\n\n---\n\n## 1. **On Form Submission: Capture User Data**\n   - Triggers when a user submits the sales tax form, capturing essential address information (street, city, state, zip).\n\n## 2. **Calculate Sales Tax: Fetch Tax Rates from API**\n   - Sends a POST request to the Sales Tax API to fetch the tax rates based on the submitted address data.\n\n## 3. **Reformat API Response: Structure Tax Data**\n   - Processes and reformats the API response into a structured format with tax agencies, rates, and total tax calculations.\n\n## 4. **Append to Google Sheets: Store Tax Information**\n   - Appends the processed tax rate data into a Google Sheets document for easy storage and future use.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "9559eeaf-51c1-4152-81e6-30ec41313f39",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        -160
      ],
      "parameters": {
        "height": 320,
        "content": "**On Form Submission: Capture User Data**\n   - Triggers when a user submits the sales tax form, capturing essential address information (street, city, state, zip).\n"
      },
      "typeVersion": 1
    },
    {
      "id": "3cfb2193-a954-46cd-9415-bfb7dec61cd2",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        220,
        -160
      ],
      "parameters": {
        "height": 320,
        "content": " **Calculate Sales Tax: Fetch Tax Rates from API**\n   - Sends a POST request to the Sales Tax API to fetch the tax rates based on the submitted address data.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "cdaf7d69-c546-4635-993d-e1ac04c78c31",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        500,
        -160
      ],
      "parameters": {
        "height": 320,
        "content": "**Reformat API Response: Structure Tax Data**\n   - Processes and reformats the API response into a structured format with tax agencies, rates, and total tax calculations.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "2a795c35-837b-4c30-85f3-38fd1681129f",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        760,
        -160
      ],
      "parameters": {
        "height": 320,
        "content": "**Append to Google Sheets: Store Tax Information**\n   - Appends the processed tax rate data into a Google Sheets document for easy storage and future use."
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Re Fromat": {
      "main": [
        [
          {
            "node": "Append In Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Calculate Sales tax",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calculate Sales tax": {
      "main": [
        [
          {
            "node": "Re Fromat",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}