Smartsheet Integration
How to connect Smartsheet to Nomad Media using webhooks, EventBridge, and Lambda functions.
This guide covers the full setup for integrating Smartsheet with Nomad Media, including Lambda creation, EventBridge rule configuration, webhook setup, and secrets management.
Step 1 — Create the Lambda
- Go to the AWS Lambda homepage and click Create function.
- Enter the function name under Function name and choose your language under Runtime.
- Optionally, select an existing execution role under Change default execution role → Use an existing role. Otherwise leave Create a new role with basic Lambda permissions selected (the role can be changed later in Configuration → Execution role).
- Click Create function.
Step 2 — Create the EventBridge Rule
Configure EventBridge to trigger the Lambda on Nomad Media asset events.
- Go to the Amazon EventBridge homepage → Buses → Rules → Create rule.
- Enter a name for the rule and click Next.
- Under Creation Pattern, select Custom pattern (JSON editor). Enter your event pattern and click Next.
Example pattern for asset custom property updates:
{
"source": ["nomad.dev-05"],
"detail-type": ["Content Change"],
"detail": {
"event": ["Asset Custom Properties Updated"]
}
}For a full list of available Nomad Media events, see Nomad Media Events.
- Under Select a target, choose Lambda function and select your Lambda. Click Skip to Review and create.
- Review all details and click Create rule.
Step 3 — Set Up the API Gateway Webhook
Smartsheet requires an HTTP endpoint to deliver webhook payloads.
Create the Route
- Go to API Gateway → Routes → Create.
- Enter
POSTfor the method and the desired path, then click Create. - Click the route you created and click Attach integration.
- Click Create and attach an integration, choose Lambda function, select your Lambda, and click Create.
Get the Authentication Token
- In Smartsheet, click the user icon in the bottom left.
- Select Apps and Integrations....
- Select API Access, then click Generate new access token.
- Copy the token and use it in the
Authorizationheader for webhook API calls:
{
"Authorization": "{TOKEN}"
}Create the Webhook
Request:
POST https://api.smartsheet.com/2.0/webhooks
{
"name": "your-webhook-name",
"callbackUrl": "https://your-api-gateway-url/your-route",
"scope": "sheet",
"scopeObjectId": "{SHEET_ID}",
"events": ["*.*"],
"version": 1
}Successful response:
{
"message": "SUCCESS",
"resultCode": 0,
"result": {
"id": 1234567890123456,
"name": "your-webhook-name",
"scope": "sheet",
"scopeObjectId": 1234567890123456,
"events": ["*.*"],
"callbackUrl": "https://your-api-gateway-url/your-route",
"enabled": true,
"status": "NEW_NOT_VERIFIED",
"version": 1,
"createdAt": "2024-11-18T12:00:00Z",
"modifiedAt": "2024-11-18T12:00:00Z"
}
}Verify the Webhook
The webhook will be in NEW_NOT_VERIFIED status until verified. Send the following request (replace {webhookId} with the ID from the create response):
PUT https://api.smartsheet.com/2.0/webhooks/{webhookId}
{
"enabled": true
}The status will change to ENABLED in the response.
Step 4 — Nomad Media Configuration
Locate your Nomad Media configuration file at /configuration/{environment}.json in your system S3 bucket. Add the following section:
"application/nbc": {
"sheetId": "{SHEET_ID}",
"secretKey": "{SMARTSHEET_SECRET_KEY}",
"serviceAccountSecretKey": "{SERVICE_ACCOUNT_SECRET_KEY}",
"attributes": "{ATTRIBUTES}",
"compliance": "{COMPLIANCE}",
"sdkMapping": "{SDK_MAPPING}"
}| Key | Description |
|---|---|
sheetId | The ID of the sheet to use for your Lambda. |
secretKey | The path of the AWS secret where your Smartsheet credentials are stored. |
serviceAccountSecretKey | The path of the AWS secret where your Nomad Media credentials are stored. |
For details on configuring attributes, compliance, and sdkMapping, see Asset Webhook Sync Configuration.
Step 5 — Secrets
Nomad Media Secret
{
"username": "{USERNAME}",
"password": "{PASSWORD}"
}Smartsheet Secret
{
"accessToken": "{ACCESS_TOKEN}"
}