Overview
This node implements a webhook trigger designed to start an n8n workflow when it receives an audio-related webhook call from a Microsoft Teams F456 integration. It constructs a specific webhook URL path based on a company code and a user-defined path component.
The node authenticates incoming requests using an API key header, processes multipart form-data payloads containing audio files and JSON metadata, and can automatically download and play PCM audio files through a backend API when certain call statuses are detected (e.g., "call_received" or "error").
Common scenarios:
- Automating workflows triggered by incoming calls in Microsoft Teams with custom audio playback.
- Playing welcome or error audio messages dynamically during call events.
- Integrating Teams call events with other systems via webhook-triggered workflows.
Practical example:
A company wants to greet callers with a random welcome audio message when a call is received and play an error message if the call encounters an issue. This node listens for such call events, downloads the appropriate audio file(s), and instructs a backend service to play them during the call, while triggering further automation in n8n.
Properties
| Name | Meaning |
|---|---|
| Company Code | The 6-digit company code used as part of the webhook URL path. Must be exactly 6 digits (e.g., "001000"). |
| Path | The path component appended to the webhook URL after the company code (default: "webhook"). |
| Audio Welcome URLs | A list of URLs pointing to PCM audio files to download and play when the call status is "call_received". Multiple URLs can be provided; one is randomly selected. |
| Audio Error URL | A single URL pointing to a PCM audio file to download and play when the call status is "error". |
| Backend URL | The base URL of the backend API responsible for playing audio files during calls (default: "https://voip.test.factory456.com"). |
Output
The node outputs JSON data representing the webhook request details and any processed audio information:
For standard webhook calls without multipart data, the output JSON includes:
headers: HTTP headers of the request.params: URL parameters.query: Query string parameters.body: The raw body content.method: HTTP method used.url: Full request URL.
For multipart/form-data requests containing audio and JSON files:
- The JSON output merges parsed JSON file content with
_webhookInfometadata about the request. - If audio processing occurs (on "call_received" or "error" status), an
_audioProcessingobject is added with:status:"processed"or"error".audioType:"welcome"or"error".selectedUrl: The URL of the audio file played.callId: Identifier of the call.timestamp: ISO timestamp of processing.- In case of errors, error details are included.
- The JSON output merges parsed JSON file content with
Binary data fields contain the uploaded audio files from the webhook request.
Dependencies
- Requires an API key credential configured in n8n for authentication of incoming webhook requests.
- Uses the
axioslibrary to download audio files and send audio playback requests to the backend. - Uses the
form-datalibrary to construct multipart POST requests for audio playback. - The backend service specified by the "Backend URL" property must expose an API endpoint to accept audio playback commands for calls.
- Node expects incoming webhook requests to include an
X-Auth-Keyheader matching the configured API key. - Node reads local filesystem temporarily to parse JSON files attached in the webhook payload.
Troubleshooting
Authentication errors:
If the webhook request lacks the correctX-Auth-Keyheader or the API key is not configured, the node responds with HTTP 401 or 500 errors respectively.
Resolution: Ensure the API key credential is set up correctly and clients send the proper header.Invalid company code or path:
The webhook URL path depends on these properties. Incorrect values will cause webhook calls to miss the node.
Resolution: Verify the company code is exactly 6 digits and the path matches the expected value.Audio playback failures:
Errors downloading audio files or sending playback requests to the backend are logged and cause the audio processing step to fail silently (workflow continues).
Resolution: Check that audio URLs are valid and accessible, and that the backend URL is reachable and supports the required API.JSON parsing errors:
If attached JSON files are malformed, the node logs errors and includes error details in the output JSON underjsonFileError.
Resolution: Validate JSON files before sending.Unsupported call status:
Only "call_received" and "error" statuses trigger audio playback. Other statuses are ignored.
Resolution: Confirm the external system sends supported statuses.
Links and References
- Axios GitHub Repository – HTTP client used for downloading and posting audio files.
- FormData npm package – Used to build multipart form data for audio playback requests.
- Microsoft Teams Developer Documentation – For understanding Teams call event integrations.
- n8n Webhook Trigger Documentation – General info on webhook triggers in n8n.