Skip to main content

Overview

Integration nodes connect Draft & Goal to your business tools — CRMs like HubSpot, CMSs like WordPress, data sources like Google Sheets and BigQuery, and more. Automate data flow between systems.

Available integrations

Google Suite

SEO Tools

CRM

Content Management

Web & Communication

Setting up integrations

Before using integration nodes, connect your accounts:
  1. Go to SettingsIntegrations
  2. Click Add Integration
  3. Select the service (HubSpot, Google, WordPress, etc.)
  4. Complete OAuth authentication or enter API keys
  5. Integration is now available in all workflows
Integrations are workspace-level. Set up once, use everywhere.

OAuth integrations (HubSpot, Google)

  1. Go to SettingsIntegrations
  2. Click Add Integration → Select service
  3. Click Connect (e.g., “Connect with HubSpot”)
  4. Authorize access in the provider
  5. Integration is ready

API key integrations (WordPress)

  1. Go to SettingsIntegrations
  2. Click Add IntegrationWordPress
  3. Enter your WordPress site URL
  4. Add your application password
  5. Test connection

HubSpot integration

What you can do

ActionNode
List all companiesHubSpot List Companies
Get company detailsHubSpot Get Company
Update company propertiesHubSpot Update Company

Common workflows

Lead enrichment CRM reporting

Working with properties

HubSpot uses properties for company data:
{
  "name": "Acme Inc",
  "domain": "acme.com",
  "industry": "Technology",
  "numberofemployees": "50-100",
  "custom_property": "value"
}
Update properties by name:
{
  "industry": "SaaS",
  "lead_score": "85"
}

WordPress integration

What you can do

ActionNode
Create postsWordPress Post Create
Create pagesWordPress Post Create (type: page)
Publish contentWordPress Post Create (status: publish)

Post creation

Create a new blog post: Input:
{
  "title": "My Blog Post",
  "content": "Post content in HTML...",
  "status": "draft",
  "categories": [1, 2],
  "tags": [5, 6],
  "featured_media": 123
}
Output:
{
  "id": 456,
  "link": "https://yoursite.com/my-blog-post",
  "status": "draft"
}

Content workflow

Generate and publish content:

Common patterns

CRM data enrichment

Content automation

Cross-platform sync

Read → Process → Write

The most common data workflow:

Multi-source aggregation

Combine data from multiple sources:

Scheduled data sync

Keep systems in sync automatically:
Schedule: Daily at 2 AM
  → Read from source
  → Transform
  → Write to destination
  → Log results

Working with Google Sheets

Reading data

The Google Sheets node returns structured data:
{
  "data": [
    {"name": "Alice", "email": "[email protected]"},
    {"name": "Bob", "email": "[email protected]"}
  ],
  "rows": 2,
  "columns": 2
}

Writing data

Write arrays of arrays:
[
  ["Name", "Email", "Status"],
  ["Alice", "[email protected]", "Active"],
  ["Bob", "[email protected]", "Pending"]
]

Tips for Sheets

  • Use named ranges for stable references
  • Include headers for structured output
  • Use A1 notation for ranges: Sheet1!A1:D100

Working with BigQuery

Reading with SQL

Write standard SQL queries:
SELECT 
  date,
  campaign,
  SUM(spend) as total_spend
FROM `project.dataset.table`
WHERE date >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
GROUP BY date, campaign
ORDER BY date DESC

Writing data

Specify table and write mode:
  • Append: Add new rows
  • Truncate: Replace all data
  • Write if empty: Only write to empty table

Tips for BigQuery

  • Use parameterized queries for dynamic values
  • Partition tables for better performance
  • Set appropriate timeout for large queries

Authentication

OAuth flow

For OAuth integrations (HubSpot, Google):
  1. Draft & Goal redirects to provider
  2. You authorize access
  3. Provider returns tokens
  4. Tokens stored securely
Tokens refresh automatically.

API keys

For API key integrations:
  1. Generate key in the platform
  2. Add to Draft & Goal integrations
  3. Key encrypted at rest
Never share API keys. Treat them like passwords.

Best practices

Error handling

Handle API errors gracefully:
Conditional:
  If HubSpot_0.status == "error"
    → Log error
    → Retry or alert
  Else
    → Continue workflow

Common errors

ErrorCauseSolution
403 ForbiddenNo permissionCheck OAuth scopes
404 Not FoundWrong IDVerify spreadsheet/table ID
Quota exceededToo many requestsAdd delays, batch requests
Invalid rangeBad A1 notationCheck range format

Retry logic

For transient errors:
  1. Add a retry mechanism (3 attempts)
  2. Wait between retries (exponential backoff)
  3. Log failures for review

Rate limiting

Respect API rate limits:
PlatformRate limit
HubSpot100 requests/10 seconds
WordPressVaries by host
Google SheetsVaries by quota
Add delays for bulk operations.

Data validation

Validate before updating CRM or writing data:
  • Check required fields
  • Verify data format
  • Confirm IDs exist
  • Handle empty data gracefully

Use IDs, not names

Spreadsheet names can change. Use IDs:
❌ "Marketing Budget 2024"
✅ "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"

Handle empty data

Always check for empty results:
Conditional:
  If data.rows == 0
    → Handle empty case
  Else
    → Process normally

Validate before writing

Check data quality before writing:
  • Required fields present
  • Data types correct
  • No duplicates (if needed)

Next steps