Adobe Document Generation API

Create business-critical documents like invoices, contracts, sales proposals, and work orders automatically.

Integrate the Adobe Document Generation API API with the MongoDB API

Setup the Adobe Document Generation API API trigger to run a workflow which integrates with the MongoDB API. Pipedream's integration platform allows you to integrate Adobe Document Generation API and MongoDB remarkably fast. Free for developers.

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
New Collection from the MongoDB API

Emit new an event when a new collection is added to a database

 
Try it
New Database from the MongoDB API

Emit new an event when a new database is added

 
Try it
New Document from the MongoDB API

Emit new an event when a new document is added to a collection

 
Try it
New Field in Document from the MongoDB API

Emit new an event when a new field is added to a document

 
Try it
Create New Document with the MongoDB API

Create a new document in a collection of your choice. See the docs here

 
Try it
Delete a Document with the MongoDB API

Delete a single document by ID. See the docs here

 
Try it
Execute Aggregation with the MongoDB API

Execute an aggregation pipeline on a MongoDB collection. See the documentation

 
Try it
Find Document with the MongoDB API

Finds a document by a query filter. See the documentation

 
Try it
Find Document by Id with the MongoDB API

Retrieves a single document by ID. See the docs here

 
Try it

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;
			}
  },
})

Overview of MongoDB

The MongoDB API provides powerful capabilities to interact with a MongoDB database, allowing you to perform CRUD (Create, Read, Update, Delete) operations, manage databases, and execute sophisticated queries. With Pipedream, you can harness these abilities to automate tasks, sync data across various apps, and react to events in real-time. It’s a combo that’s particularly potent for managing data workflows, syncing application states, or triggering actions based on changes to your data.

Connect MongoDB

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
import mongodb from 'mongodb'

export default defineComponent({
  props: {
    mongodb: {
      type: "app",
      app: "mongodb",
    },
    collection: {
      type: "string"
    },
    filter: {
      type: "object"
    }
  },
  async run({steps, $}) {
    const MongoClient = mongodb.MongoClient
    
    const {
      database,
      hostname,
      username,
      password,
    } = this.mongodb.$auth
    
    const url = `mongodb+srv://${username}:${password}@${hostname}/test?retryWrites=true&w=majority`
    const client = await MongoClient.connect(url, { 
      useNewUrlParser: true, 
      useUnifiedTopology: true 
    })
    
    const db = client.db(database)

    const results = await db.collection(this.collection).find(this.filter).toArray();
    $.export('results', results);
    
    await client.close()
  },
})

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