Skip to content

Commit 3d44dfb

Browse files
author
nianiB9
committed
embed code example
1 parent 3ea031a commit 3d44dfb

File tree

2 files changed

+68
-0
lines changed

2 files changed

+68
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ UserData.csv
1111
config/API_ACCOUNT_ID
1212
config/CLICKWRAP_ID
1313
config/ds_access_token.txt
14+
examples/ConnectedFields/__pycache__/
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
#!/bin/bash
2+
# https://developers.docusign.com/docs/maestro-api/maestro101/embed-workflow/
3+
# Embed a Maestro workflow after it has been triggered
4+
5+
# Check that we're in a bash shell
6+
if [[ $SHELL != *"bash"* ]]; then
7+
echo "PROBLEM: Run these scripts from within the bash shell."
8+
fi
9+
10+
# Step 1: Obtain your OAuth token
11+
ACCESS_TOKEN=$(cat config/ds_access_token.txt)
12+
13+
# Step 2: Read the account ID
14+
account_id=$(cat config/API_ACCOUNT_ID)
15+
16+
# Step 3: Read the workflow ID created by the trigger workflow script
17+
workflow_id=$(cat config/WORKFLOW_ID)
18+
19+
# Step 4: Verify a workflow has been created
20+
if [ -z "$workflow_id" ]; then
21+
echo "❌ ERROR: No workflow found. Please trigger a workflow before running this embed script."
22+
exit 0
23+
fi
24+
25+
# Step 5: Construct your API headers
26+
declare -a Headers=('--header' "Authorization: Bearer ${ACCESS_TOKEN}" \
27+
'--header' "Accept: application/json" \
28+
'--header' "Content-Type: application/json")
29+
30+
# Step 6: Prepare request body
31+
request_data=$(mktemp /tmp/request-embed.XXXXXX)
32+
printf \
33+
'{
34+
"returnUrl": "https://example.com/return"
35+
}' > $request_data
36+
37+
# Step 7: Make the POST request to generate the embed URL
38+
response=$(mktemp /tmp/response-embed.XXXXXX)
39+
Status=$(curl -s -w "%{http_code}\n" -i --request POST "https://api-d.docusign.net/maestro/v1/accounts/${account_id}/workflows/${workflow_id}/embed_url" \
40+
"${Headers[@]}" \
41+
--data-binary @$request_data \
42+
--output ${response})
43+
44+
# Step 8: Handle the response
45+
if [[ "$Status" -gt "201" ]]; then
46+
echo ""
47+
echo "❌ ERROR: Unable to generate embed URL for the workflow"
48+
echo ""
49+
cat $response
50+
rm "$request_data"
51+
rm "$response"
52+
exit 0
53+
fi
54+
55+
echo ""
56+
echo "✅ Embed URL successfully generated:"
57+
embed_url=$(grep '"url":' $response | sed -n 's/.*"url": "\([^"]*\)".*/\1/p')
58+
echo $embed_url
59+
60+
# Optional: Output embed code for iframe usage
61+
echo ""
62+
echo "📎 Use this in your HTML:"
63+
echo "<iframe src=\"$embed_url\" width=\"100%\" height=\"600\" frameborder=\"0\" allowfullscreen></iframe>"
64+
65+
# Clean up
66+
rm "$request_data"
67+
rm "$response"

0 commit comments

Comments
 (0)