Search documentation

Search for pages in the documentation

Create Salesforce Task

Create tasks in Salesforce

The Create Salesforce Task node creates follow-up tasks in Salesforce. Use it to automatically generate action items, reminders, and activities based on meeting outcomes.

Overview

PropertyValue
CategoryAction
Node IDsds.createSalesforceTask.perItem.in1.success1.error1 (per-item)
ds.createSalesforceTask.batch.in1.success1.error1 (batch)
Input Ports1
Success Outputs1
Error Outputs1
Execution ModePer-item or Batch
Timeout30 seconds
Retry StrategyExponential, 3 attempts
Side-EffectingYes

Prerequisites

  • Salesforce integration connected (Setup Guide)
  • Salesforce Enterprise tier or above (for API access)
  • Appropriate Salesforce permissions for task creation

Configuration

ParameterTypeRequiredDefaultDescription
deal_room_idCEL ExpressionYes-Decision Site ID to associate task
titleLiquid TemplateYes-Task subject
descriptionLiquid TemplateYes-Task description/comments
due_dateCEL ExpressionNo-Due date (YYYY-MM-DD)
prioritySelectNoNormalHigh, Normal, or Low

Deal Room ID

Links the task to the correct Salesforce opportunity:

cel
trigger.dealRoomId

Title (Subject)

Task subject using Liquid template:

liquid
Follow up: {{ json.meeting.title }}

Description

Task comments/body:

liquid
Follow up from meeting on {{ json.meeting.startTime | date: "%B %d, %Y" }}.

Key discussion points:
{{ json.summary }}

Next steps: {{ json.nextSteps }}

Due Date

ISO date format (YYYY-MM-DD):

cel
"2024-01-20"

Or from upstream data:

cel
json.calculatedDueDate

Priority

Task priority level:

  • High - Urgent tasks
  • Normal - Standard priority (default)
  • Low - Non-urgent tasks

Input Schema

Accepts any data from upstream. Access via json in templates.

Output Schema

Success Output

json
{
  "success": true,
  "taskId": "00T5e000001abc123",
  "opportunityId": "0065e000001xyz789",
  "subject": "Follow up: Q1 Planning Review",
  "activityDate": "2024-01-20",
  "priority": "High",
  "createdAt": "2024-01-15T14:30:00Z"
}

Error Output

json
{
  "error": "OPPORTUNITY_NOT_FOUND",
  "message": "No Salesforce opportunity associated with deal room dr_xyz789",
  "dealRoomId": "dr_xyz789"
}
Error CodeDescription
OPPORTUNITY_NOT_FOUNDNo Salesforce opportunity linked to deal room
AUTH_ERRORSalesforce token expired or permissions issue
VALIDATION_ERRORInvalid task data
FIELD_CUSTOM_VALIDATIONSalesforce validation rule failed

Examples

Basic Example: Post-Meeting Task

Create a follow-up task after a meeting.

Configuration:

Deal Room ID: trigger.dealRoomId

Title:

liquid
Follow up: {{ json.meeting.title }}

Description:

liquid
Follow up from meeting on {{ json.meeting.startTime | date: "%B %d" }}.

Summary:
{{ json.summary }}

Action items discussed:
{{ json.actionItems }}

Due Date: "2024-01-20"

Priority: Normal

Example: High-Priority Alert

Create urgent task for at-risk deals.

Configuration:

Title:

liquid
URGENT: Risk identified - {{ json.dealName }}

Description:

liquid
Risk identified during meeting on {{ json.meeting.startTime | date: "%B %d, %Y" }}.

Risk type: {{ json.riskType }}
Description: {{ json.riskDescription }}

Recommended immediate actions:
{{ json.recommendedActions }}

Meeting participants:
{% for a in json.meeting.attendees %}
- {{ a.name }} ({{ a.email }})
{% endfor %}

Priority: High

Example: Multiple Tasks from Action Items

Create individual tasks for each action item.

Workflow:

text
[Load Meeting]
       │
       ▼
[AI Prompt: Extract action items as JSON array]
       │
       ▼
[Select Many: json.actionItems]  ← Expand array to items
       │
       ▼
[Create Salesforce Task] ← Creates one task per item

Configuration:

Title:

liquid
Action: {{ json.task }}

Description:

liquid
From: {{ json.meetingTitle }}

Task: {{ json.task }}
Owner: {{ json.owner | default: "Unassigned" }}
Deadline: {{ json.deadline | default: "Not specified" }}

Meeting date: {{ json.meetingDate }}

Example: Scheduled Check-in

Create a future follow-up task.

Configuration:

Title:

liquid
Check-in call: {{ json.contact.company }}

Description:

liquid
Scheduled check-in following {{ json.meeting.title }}.

Discussion points for next call:
{% for topic in json.followUpTopics %}
- {{ topic }}
{% endfor %}

Previous meeting summary:
{{ json.previousSummary }}

Contact: {{ json.contact.name }} ({{ json.contact.email }})

Due Date: json.followUpDate

Priority: Normal

Best Practices

1. Include Full Context

Sales reps should understand the task without digging:

liquid
Opportunity: {{ json.opportunity.name }}
Meeting: {{ json.meeting.title }}
Date: {{ json.meeting.startTime | date: "%B %d, %Y" }}

Attendees:
{% for a in json.meeting.attendees %}
- {{ a.name }}
{% endfor %}

Key discussion points:
{{ json.keyPoints }}

Required action:
{{ json.actionRequired }}

2. Standardize Subject Lines

Use consistent prefixes for easy filtering:

TypePrefix Example
Follow-upFollow up: [context]
Action requiredAction: [task]
UrgentURGENT: [issue]
Check-inCheck-in: [contact/company]

3. Match Salesforce Task Conventions

If your org has task naming conventions, follow them:

liquid
[{{ json.taskType }}] {{ json.subject }} - {{ json.contact.company }}

4. Handle Missing Data Gracefully

liquid
{% if json.contact.name %}
Contact: {{ json.contact.name }}
{% else %}
Contact: (see meeting attendees)
{% endif %}

{% if json.nextSteps %}
Next steps:
{{ json.nextSteps }}
{% endif %}

5. Validate Before Creating

Check that the deal room has a Salesforce opportunity:

text
[If: has Salesforce opportunity?]
    ├── Yes ──▶ [Create Salesforce Task]
    └── No ───▶ [Slack: "No SF opportunity found"] ──▶ [Sink]

Common Issues

"Opportunity not found" error

Causes:

  • Deal room not synced to Salesforce
  • Opportunity was deleted
  • Incorrect deal room ID

Solutions:

  1. Verify deal room has Salesforce association in UI
  2. Check Salesforce for the opportunity
  3. Re-sync the deal room

Task created but missing from opportunity

Causes:

  • Salesforce page layout doesn't show tasks
  • Task associated but in wrong related list
  • User view is filtered

Solutions:

  1. Check opportunity's Activity/Tasks related list
  2. Clear any list filters
  3. Verify task exists in Salesforce Tasks tab

Field validation errors

Causes:

  • Salesforce validation rules
  • Required custom fields not populated
  • Field value not in picklist

Solutions:

  1. Check Salesforce validation rules
  2. Map required fields in workflow
  3. Use valid picklist values

Authentication errors

Causes:

  • Salesforce session expired
  • IP restrictions
  • Password policy changes

Solutions:

  1. Reconnect Salesforce integration
  2. Verify Salesforce API access
  3. Check Salesforce login history

Technical Details

Task Object Fields

The node sets these Salesforce Task fields:

  • Subject - From title parameter
  • Description - From description parameter
  • ActivityDate - From due_date parameter
  • Priority - From priority parameter
  • WhatId - Opportunity ID (from deal room association)
  • Status - "Not Started" (default)

Task Association

Tasks are associated with:

  • The Salesforce Opportunity linked to the deal room
  • Additional associations depend on Salesforce configuration

Task Owner

Tasks are assigned to the opportunity owner. To assign to a different user, additional configuration may be needed.

Idempotency

Tasks use idempotency keys based on execution context to prevent duplicates during retries. Different workflow executions will create separate tasks.

API Limits

Respects Salesforce API limits:

  • Daily API call limits
  • Concurrent API call limits
  • Retry logic handles temporary rate limits