Mailhook, FTP and NetSuite: Emailed Catalog Intake Template

When a supplier emails a catalog file to a Spojit mailhook address, archive the file to your FTP server and upsert the items into NetSuite.

What It Builds

This template starts from a Mailhook trigger that receives supplier catalog emails at a unique Spojit address. An Attachment node pulls the catalog file (a CSV or spreadsheet) out of the email, a Connector node on the ftp connector uploads a dated copy to your archive folder, and a Connector node on the netsuite connector upserts each catalog row into your item records. The result is a hands-off intake that keeps a permanent file copy on FTP and a current item list in NetSuite every time a supplier sends an update.

The Prompt

Paste this into Miraxa and it builds the workflow, connecting the tools for you:

Build a workflow that triggers from a mailhook when a supplier emails a catalog file. Fetch the catalog attachment, upload a copy to FTP under /catalogs with a date-stamped filename, parse the rows, then upsert each item into NetSuite using the supplier SKU as the match key. Send a confirmation email to the sender with how many items were processed.

Connectors Used

  • Mailhook trigger - supplies the supplier email and its attachments[] references; the run starts seconds after mail arrives.
  • Attachment node - fetches the catalog file bytes referenced by the Mailhook trigger (only valid in Mailhook workflows).
  • ftp - upload-file writes the archived copy; create-directory can ensure the target folder exists.
  • netsuite - upsert-record creates or updates each item; get-item can confirm a match before writing.
  • Send Email node - replies to {{ input.replyTo }} with the processed count (no connection needed).

Customize It

Change /catalogs to your real archive path and adjust the filename pattern (for example include the supplier name from {{ input.from }}). Swap the NetSuite match key from supplier SKU to your internal item ID if that is how your records are keyed. To only accept files from known suppliers, add a From allowlist on the Mailhook trigger, and set a Filename pattern like *.csv on the Attachment node so non-catalog attachments are ignored.

Tips

  • Use the Attachment node in Single mode with a Filename pattern of *.csv when each email carries one catalog; switch to Multiple mode and a Loop if suppliers send several files per email.
  • Keep the NetSuite step in Direct mode with upsert-record: the input is predictable and Direct mode costs no AI credits. Reserve Agent mode for messy catalogs that need column mapping decided on the fly.
  • Mailhook attachments default to a 10 MB per-file and 25 MB per-run limit, and received emails are retained for 30 days, so archive promptly to FTP rather than relying on the inbox.

Common Pitfalls

  • The designer refuses to save an Attachment node without a Mailhook trigger, so build the trigger first.
  • If upsert-record creates duplicates, your match key is not unique in NetSuite. Confirm the field you upsert on is set up as an external ID or unique reference for the item record.
  • FTP uploads fail silently when the target folder does not exist. Add an ftp create-directory step (or verify the path) before upload-file.

Related

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.