npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

n8n-nodes-myobv2

v1.6.0

Published

Comprehensive n8n node for MYOB Business API - Sales Orders, Customers, Items, Invoices, and more

Downloads

108

Readme

n8n-nodes-myobv2

npm version

Comprehensive n8n community node for MYOB Business API integration. This node provides full CRUD operations for Sales Orders, Customers, Items, and Invoices.

Features

Supported Resources & Operations

📦 Sales Orders

  • Create: Create sales orders with multiple line items (supports Shopify integration)
  • Get: Retrieve sales order by UID
  • List: List all sales orders with filtering

👥 Customers

  • Create: Create new customers
  • Get: Retrieve customer by UID
  • List: List all customers with filtering

📋 Items/Inventory

  • Create: Create new inventory items
  • Get: Retrieve items by UID or SKU
  • List: List all inventory items with filtering
  • Get Inventory Items: Retrieve inventory items with stock levels for specific location

🧾 Invoices

  • Get: Retrieve invoice by UID
  • List: List all invoices with filtering
  • Create from Sales Order: Convert existing sales orders to invoices

Key Capabilities

Multi-Resource Operations - One node handles all MYOB entities
Shopify Integration - Direct support for Shopify webhook data
SKU Auto-Lookup - Automatic conversion of SKUs to MYOB UIDs
Flexible Line Items - UI forms or dynamic JSON arrays
Advanced Filtering - OData query support for list operations
Error Handling - Graceful fallbacks and detailed error messages
OAuth2 Authentication - Secure cloud-based authentication

Installation

From n8n Community Nodes

  1. Go to SettingsCommunity Nodes
  2. Enter n8n-nodes-myobv2
  3. Click Install

Manual Installation

npm install n8n-nodes-myobv2

Setup

1. MYOB Developer Account

  1. Register at MYOB Developers
  2. Create a new app to get your API Key and Secret
  3. Set redirect URI to: http://localhost:5678/rest/oauth2-credential/callback

2. n8n Credentials

  1. Create new MYOB OAuth2 API credentials in n8n
  2. Enter your Client ID (API Key) and Client Secret (API Secret)
  3. Add your Company File GUID (found in MYOB cloud URL)
  4. Click Connect my account and authorize

Usage Examples

Sales Order Operations

Create Sales Order from Shopify

// Configure node:
Resource: Sales Order
Operation: Create
Input Method: JSON Array
Line Items Data: {{ $json.line_items }}
Customer UID: "12345678-1234-1234-1234-123456789012"
Default SKU: "DEFAULT-ITEM"

Get Sales Order

Resource: Sales Order
Operation: Get
Sales Order UID: "87654321-4321-4321-4321-210987654321"

List Recent Sales Orders

Resource: Sales Order
Operation: List
Filter: Date gt datetime'2024-01-01T00:00:00'
Limit: 50

Customer Operations

Create Customer

Resource: Customer
Operation: Create
Customer Name: "Acme Corp"
Email: "[email protected]"
Phone: "+1-555-0123"

Find Customer by Name

Resource: Customer
Operation: List
Filter: CompanyName eq 'Acme Corp'

Item Operations

Get Item by SKU

Resource: Item
Operation: Get
Item SKU: "WIDGET-001"

Create New Item

Resource: Item
Operation: Create
Item Name: "Premium Widget"
Item SKU/Number: "WIDGET-PREMIUM"
Base Selling Price: 99.95

List Active Items

Resource: Item
Operation: List
Filter: IsActive eq true and IsSold eq true
Limit: 100

Get Inventory Items with Stock Levels

Resource: Item
Operation: Get Inventory Items
Location UID: "12345678-1234-1234-1234-123456789012"
Limit: 100
Filter: IsActive eq true and IsInventoried eq true

Returns:

{
  "success": true,
  "message": "Retrieved 25 inventory items for location",
  "locationUid": "12345678-1234-1234-1234-123456789012",
  "totalItems": 25,
  "itemsWithStock": 18,
  "items": [
    {
      "uid": "item-uid-123",
      "sku": "WIDGET-001",
      "description": "Premium Widget - Blue",
      "name": "Premium Widget",
      "quantityOnHand": 45,
      "availableQuantity": 40,
      "committedQuantity": 5,
      "locationName": "Main Warehouse",
      "baseSellingPrice": 29.95
    }
  ]
}

Invoice Operations

Create Invoice from Sales Order

Resource: Invoice
Operation: Create from Sales Order
Sales Order UID: "12345678-1234-1234-1234-123456789012"

List Recent Invoices

Resource: Invoice
Operation: List
Filter: Date gt datetime'2024-01-01T00:00:00'

Advanced Features

Dynamic Line Items (Shopify Integration)

The node automatically handles Shopify webhook data:

{
  "line_items": [
    {
      "sku": "WIDGET-001",
      "quantity": 2,
      "price": "29.95",
      "title": "Premium Widget",
      "variant_title": "Blue",
      "discount_allocations": [
        {"amount": "5.99"}
      ]
    }
  ]
}

Features:

  • Automatic SKU lookup and UID resolution
  • Discount calculation from Shopify data
  • Fallback to default SKU for missing items
  • Product title and variant consolidation

OData Filtering

Use OData query syntax for powerful filtering:

// Date ranges
Date gt datetime'2024-01-01T00:00:00'

// Text matching
CompanyName eq 'Acme Corp'

// Boolean filters  
IsActive eq true and IsSold eq true

// Numeric comparisons
BaseSellingPrice gt 50.00

// Multiple conditions
IsActive eq true and Date gt datetime'2024-01-01T00:00:00'

Error Handling

The node provides detailed error messages and graceful fallbacks:

  • SKU not found → Falls back to default SKU
  • Network errors → Detailed error context
  • Validation errors → Clear field-specific messages
  • API rate limits → Automatic retry suggestions

Field Reference

Sales Order Create Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | Customer UID | String | Yes | MYOB customer GUID | | Tax Inclusive | Boolean | No | Whether prices include tax | | Purchase Order Number | String | No | Reference number | | Journal Memo | String | No | Internal memo | | Comment | String | No | Order comment | | Shipping Address Lines 1-5 | String | No | Multi-line shipping address | | Shipping SKU | String | No | Shipping item SKU | | Shipping Price | Number | No | Shipping cost | | Input Method | Options | Yes | UI Form or JSON Array | | Line Items Data | JSON | Conditional | Raw line items (JSON method) | | Default SKU | String | Conditional | Fallback SKU (JSON method) |

Customer Create Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | Customer Name | String | Yes | Company/person name | | Customer Number | String | No | Custom customer code | | Email | String | No | Contact email | | Phone | String | No | Contact phone |

Item Create Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | Item Name | String | Yes | Product name | | Item SKU/Number | String | Yes | Unique identifier | | Item Description | String | No | Product description | | Base Selling Price | Number | No | Default price |

Get Inventory Items Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | Location UID | String | Yes | MYOB location GUID to get quantities for | | Limit | Number | No | Max records (default: 100) | | Filter | String | No | OData filter expression |

List Operation Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | Limit | Number | No | Max records (default: 100) | | Filter | String | No | OData filter expression |

Common Workflows

E-commerce → MYOB Integration

  1. Shopify WebhookMYOB Sales Order Create
  2. Order ProcessingMYOB Invoice Create from Sales Order
  3. Customer SyncMYOB Customer Create/Update

Inventory Management

  1. CSV ImportMYOB Item Create
  2. Stock UpdatesMYOB Item Get/Update
  3. Price ChangesMYOB Item List & Update

Reporting & Analytics

  1. MYOB Sales Order ListData ProcessingDashboard
  2. MYOB Customer ListCRM Sync
  3. MYOB Invoice ListAccounting Reports

Troubleshooting

Authentication Issues

Problem: invalid_client error
Solution: Verify Client ID and Client Secret match your MYOB app exactly

Problem: OAuth callback error
Solution: Ensure redirect URI is http://localhost:5678/rest/oauth2-credential/callback

SKU Lookup Failures

Problem: "SKU not found" errors
Solution: Set a valid Default SKU for fallback

Problem: Items created with wrong details
Solution: Verify SKU format matches MYOB exactly (case-sensitive)

API Rate Limits

Problem: 429 Too Many Requests
Solution: Add delays between requests or batch operations

Data Validation Errors

Problem: "Required field missing"
Solution: Check MYOB field requirements for your specific operation

API Coverage

MYOB Endpoints Used

  • /Sale/Order/Item - Sales orders
  • /Contact/Customer - Customers
  • /Inventory/Item - Items/inventory
  • /Sale/Invoice/Item - Invoices

Supported MYOB Features

✅ Item sales orders
✅ Customer management
✅ Inventory items
✅ Invoice creation
✅ OData filtering
✅ Pagination
✅ Error handling

Roadmap

🔄 Purchase orders
🔄 Payments
🔄 Tax codes
🔄 Accounts
🔄 Reports
🔄 Time billing

Version History

1.0.0

  • Initial release with multi-resource support
  • Sales Orders, Customers, Items, Invoices
  • Shopify integration
  • OData filtering
  • Comprehensive error handling

Support

License

MIT License - see LICENSE file for details.

Contributing

Contributions welcome! Please read our contributing guidelines and submit pull requests.