Developer recipes

Pass a generated summary between Make modules as a URL

In Make, passing a small public text artifact between workflow stages is easier as a URL than as binary data. This recipe wires two HTTP modules to produce that link from generated content.

On this page

What this recipe provides

The request mapping download is a downloadable field-mapping reference for the two HTTP modules. It is explicitly not an importable Make blueprint; you build the scenario yourself using the values below. The recipe uses HTTP modules and is for a manually started Run once, not scheduled bulk flows.

Module 1: presign

Add an HTTP module using the v4 Make a request action:

text
URL: https://yoink.zip/api/v1/presign
Method: POST
Body content type: application/json
Body: {"filename":"public-summary.txt","contentType":"text/plain","size":43}
Authentication: none
Parse response: Yes

The sample summary below is 43 UTF-8 bytes with a newline after each line. Omit the optional size field if your mapping cannot measure bytes reliably. In advanced settings set timeout to 60 seconds, Allow redirects to No, and Return error if HTTP request fails to Yes.

Module 2: PUT the actual text

Create a text variable with these two lines and a final newline:

text
Public demo summary
Checks passed: 8 of 10

Map the presign outputs into a second HTTP module:

text
URL: {{presign.uploadUrl}}
Method: PUT
Body content type: Custom
Content type value: {{presign.contentType}}
Authentication: none
Body content: map the summary text variable
Parse response: No

The body content must be the actual UTF-8 text, not file metadata, not a path, and not a URL. Never select a multipart upload option. Parse response is No because the PUT does not return a JSON result; the status code is what matters. Again set no authentication, a 60-second timeout, redirects off and Return error if HTTP request fails to Yes.

Protect the handoff

Add a filter on the link after the PUT module allowing only 2xx status codes. Only the module after that filter may map {{presign.publicUrl}} into downstream fields. A 4xx or 5xx response stops the request module; the filter also prevents an unexpected non-2xx result from reaching the handoff. Diagnose 400, 401, 403, and 413 responses by inspecting your mapping; only rerun for transient failures, keeping in mind the signed URL expires after 900 seconds and a new presign allocates a new path.

Binary files need caution

This recipe uses text first, not arbitrary PDF bytes. For binary files, an existing file's Data value in Make may not be safely equivalent to a text field, because buffer handling depends on your Make version and module. Before generalizing, test with a tiny known public sample file and verify the uploaded bytes match the source exactly.

Verification status

These settings follow the Make HTTP documentation; the scenario has not been executed in Make Cloud. The terminal script is a runnable raw-byte comparison for the same two requests. The API reference covers the Yoink fields.

After the run

The URL your downstream module receives is public, with no delete API and no retention guarantee. Keep the source summary content in your scenario or your own storage, and only pass the link onward after the 2xx filter has confirmed the upload.