What do you want to automate

with OptimoRoute and Adobe Document Generation API?

Prompt, edit and deploy AI agents that connect to OptimoRoute, Adobe Document Generation API and 2,500+ other apps in seconds.

Trusted by 1,000,000+ developers from startups to Fortune 500 companies

Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Integrate the OptimoRoute API with the Adobe Document Generation API API
Setup the OptimoRoute API trigger to run a workflow which integrates with the Adobe Document Generation API API. Pipedream's integration platform allows you to integrate OptimoRoute and Adobe Document Generation API remarkably fast. Free for developers.

Overview of OptimoRoute

The OptimoRoute API offers a range of functionalities for route optimization and workforce management. By tapping into this API via Pipedream, you can automate complex logistics and delivery operations, scheduling, and real-time order tracking. Leverage the power of serverless workflows to integrate OptimoRoute with other apps, streamlining your dispatch, improving delivery times, and maximizing efficiency. Whether you're planning routes for a fleet of vehicles or scheduling service appointments, the OptimoRoute API provides the data you need to make decisions on-the-fly.

Connect OptimoRoute

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { axios } from "@pipedream/platform"
export default defineComponent({
  props: {
    optimoroute: {
      type: "app",
      app: "optimoroute",
    }
  },
  async run({steps, $}) {
    return await axios($, {
      url: `https://api.optimoroute.com/v1/get_events`,
      params: {
        key: `${this.optimoroute.$auth.api_key}`,
      },
    })
  },
})

Connect Adobe Document Generation API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import fs from "fs";
import axios from "axios";
import {
	ServicePrincipalCredentials,
	PDFServices,
	MimeType,
	DocumentMergeParams,
	OutputFormat,
	DocumentMergeJob,
	DocumentMergeResult
} from "@adobe/pdfservices-node-sdk";

export default defineComponent({
  props: {
    adobe_document_generation_api: {
      type: "app",
      app: "adobe_document_generation_api",
    }
  },
  async run({steps, $}) {
		// Configuration constants
		const PDF_SERVICES_CLIENT_ID = this.adobe_document_generation_api.$auth.client_id;
		const PDF_SERVICES_CLIENT_SECRET = this.adobe_document_generation_api.$auth.client_secret;

			try {
				// Initial setup, create credentials instance
				const credentials = new ServicePrincipalCredentials({
					clientId: PDF_SERVICES_CLIENT_ID,
					clientSecret: PDF_SERVICES_CLIENT_SECRET
				});

				// Creates a PDF Services instance
				const pdfServices = new PDFServices({ credentials });

				// Creates an asset(s) from source file(s) and upload
        const response = await axios.get("https://developer.adobe.com/document-services/docs/receiptTemplate.docx", { responseType: 'stream' });
        const readStream = response.data;
				const inputAsset = await pdfServices.upload({
					readStream,
					mimeType: MimeType.DOCX
				});

				// Setup input data for the document merge process
      const jsonDataForMerge = {
        "author": "Gary Lee",
        "Company": {
          "Name": "Projected",
          "Address": "19718 Mandrake Way",
          "PhoneNumber": "+1-100000098"
        },
        "Invoice": {
          "Date": "January 15, 2021",
          "Number": 123,
          "Items": [
            {
              "item": "Gloves",
              "description": "Microwave gloves",
              "UnitPrice": 5,
              "Quantity": 2,
              "Total": 10
            },
            {
              "item": "Bowls",
              "description": "Microwave bowls",
              "UnitPrice": 10,
              "Quantity": 2,
              "Total": 20
            }
          ]
        },
        "Customer": {
          "Name": "Collins Candy",
          "Address": "315 Dunning Way",
          "PhoneNumber": "+1-200000046",
          "Email": "cc@abcdef.co.dw"
        },
        "Tax": 5,
        "Shipping": 5,
        "clause": {
          "overseas": "The shipment might take 5-10 more than informed."
        },
        "paymentMethod": "Cash"
      };

				// Create parameters for the job
				const params = new DocumentMergeParams({
					jsonDataForMerge,
					outputFormat: OutputFormat.PDF
				});

				// Creates a new job instance
				const job = new DocumentMergeJob({ inputAsset, params });

				// Submit the job and get the job result
				const pollingURL = await pdfServices.submit({ job });
				const pdfServicesResponse = await pdfServices.getJobResult({
					pollingURL,
					resultType: DocumentMergeResult
				});

				// Get content from the resulting asset(s)
				const resultAsset = pdfServicesResponse.result.asset;
				const streamAsset = await pdfServices.getContent({ asset: resultAsset });

				// Creates a write stream and copy stream asset's content to it
				const outputFilePath = "/tmp/generatePDFOutput.pdf";
				console.log(`Saving asset at ${outputFilePath}`);

				return new Promise((resolve, reject) => {
					const writeStream = fs.createWriteStream(outputFilePath);
					streamAsset.readStream.pipe(writeStream);
					writeStream.on('finish', () => resolve(outputFilePath));
					writeStream.on('error', reject);
				});
			} catch(err) {
				console.error('Error generating PDF:', err);
				throw err;
			}
  },
})

Trusted by 1,000,000+ developers from startups to Fortune 500 companies

Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo