{"id":"i8nBvPOtFYWk5eoq","meta":{"instanceId":"workflow-c92ffc68","versionId":"1.0.0","createdAt":"2025-09-29T07:07:46.908805","updatedAt":"2025-09-29T07:07:46.908823","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"Get PDF with JSReport","nodes":[{"id":"9514b49d-80f3-41d2-bcbc-8fa08e27cb64","name":"Get PDF From JSReport","type":"n8n-nodes-base.httpRequest","notes":"Generating the document in JSReport","position":[1040,320],"parameters":{"url":"{{ $env.API_BASE_URL }}","method":"POST","options":{},"jsonBody":"=   {\n      \"template\": { \"name\" : \"invoice-main\" },\n      \"data\" :{\n    \"number\": \"123\",\n    \"seller\": {\n        \"name\": \"Next Step Webs, Inc.\",\n        \"road\": \"12345 Sunny Road\",\n        \"country\": \"Sunnyville, TX 12345\"\n    },\n    \"buyer\": {\n        \"name\": \"{{ $json[\"buyer name\"] }}\",\n        \"road\": \"{{ $json[\"buyer road\"] }}\",\n        \"country\": \"{{ $json[\"buyer country\"] }}\"\n    },\n    \"items\": [{\n        \"name\": \"{{ $json[\"Item 1 Name\"] }}\",\n        \"price\": {{ $json[\"Item 1 Price\"] }}\n    }, {\n        \"name\": \"{{ $json[\"Item 2 Name\"] }}\",\n        \"price\": {{ $json[\"Item 2 Price\"] }}\n    }]\n}\n   }","sendBody":true,"specifyBody":"json","authentication":"{{ $credentials.genericCredentialType }}","genericAuthType":"httpBasicAuth"},"credentials":{"httpBasicAuth":{"id":"oKwHNpbRnChEV8xq","name":"Unnamed credential"}},"notesInFlow":true,"typeVersion":4.2},{"id":"d33abb5b-50b0-44d9-8a92-e910bb180ea5","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[460,240],"parameters":{"height":372,"content":"##  Streamlining Billing Processes: From Data Input to Document Generation\n\nThis process presents the possibility of using a form, such as the one provided by n8n, to enter billing information, then calling JSReport to generate documents such as PDFs, Word, Excel, etc., and finally sending the invoice by email.\n"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"85981fc7-ecb5-49f3-9395-9866ded70257","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[903,240],"parameters":{"color":4,"width":363,"height":568,"content":"## Information for calling JSReport\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n### URL API : \n{{ $env.API_BASE_URL }}\n\n### Use :\nTo use JSReport, simply call the APIs with the base URL. You can create a free account here: {{ $env.WEBHOOK_URL }}\n\nThe APIs are available here: {{ $env.API_BASE_URL }}\n\nIn this example, we're sending a sample body that you can find in your JSReport test space."},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"94ae99b3-0ec9-4916-9bf4-19cfeb599966","name":"Form Invoice","type":"n8n-nodes-base.formTrigger","notes":"Allows you to enter invoice information","position":[740,320],"webhookId":"1d0c5777-4033-4bf4-8d0e-8a2069d79c86","parameters":{"path":"1d0c5777-4033-4bf4-8d0e-8a2069d79c86","options":{},"formTitle":"Create Facture","formFields":{"values":[{"fieldLabel":"buyer name","requiredField":true},{"fieldLabel":"buyer road","requiredField":true},{"fieldLabel":"buyer country","requiredField":true},{"fieldLabel":"Item 1 Name"},{"fieldType":"number","fieldLabel":"Item 1 Price"},{"fieldLabel":"Item 2 Name"},{"fieldLabel":"Item 2 Price"}]},"formDescription":"Create a PDF invoice from an n8n and JSReport form"},"notesInFlow":true,"typeVersion":2},{"id":"142c4a45-1228-4be5-8172-9834bb9ca491","name":"Send invoice","type":"n8n-nodes-base.gmail","notes":"Using GMAIL to send the invoice","position":[1340,320],"parameters":{"sendTo":"contact@nonocode.fr","message":"Good morning,  \n\nPlease find your invoice.  \n\nSincerely,","options":{"attachmentsUi":{"attachmentsBinary":[{}]}},"subject":"New Facture"},"credentials":{"gmailOAuth2":{"id":"N3pxr94UxrQSovu5","name":"Gmail account"}},"notesInFlow":true,"typeVersion":2.1}],"active":true,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"8e1b0f98-68ec-4300-a948-52439d00db66","connections":{"Get PDF From JSReport":{"main":[[],[],[],[],[],[],[],[],[]]}},"description":"Automated workflow: Get PDF with JSReport. This workflow integrates 5 different services: stickyNote, httpRequest, formTrigger, stopAndError, gmail. It contains 7 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: Get PDF with JSReport. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}