See related
No related articles
Workflow actions
Last Update: Oct 2024 • Est. Read Time: 12 MINTo check plan availability, see the pricing page.
Workflows are powerful tools that allow you to automate many actions in the Kustomer platform. This article outlines commonly used workflow actions and their required inputs and outputs.
Who can access this feature? | |
User types | Admins can access the Workflows page. |
In this article
- AI actions
- Aircall actions
- Chat actions
- Facebook actions
- Gmail actions
- Kustomer actions
- Postmark actions
- Scheduler actions
AI actions
Name | Description | Required Fields | Output |
Conversation Automate | ConversationID: ID of the conversation | ||
Intent Identification Prediction | Uses a conversation classification model to give the inputed text a label based on the available values in the given model. | Input: Text you would like to run the classification model on. Id: Name of the classification model you'd like to use. | Label: The value that the model classified the text as. Confidence: Number between 0 and 1 indicating how confident the model is that the predicted label is accurate. |
Natural Language Processing | Detects the sentiment of the inputed text, and can also be used to detect the language. | Text: Text you would like to process. Customer: Customer ID DetectLang: (true/false) determines whether language detection occurs. | SentimentType: (-1,0,1). -1 indicates a negative sentiment, 0 indicates a neutral sentiment, 1 indicates a positive sentiment. SentimentScore: Number between 0 and 1 indicating how confident the model is that the predicted sentiment is accurate. DominantLanguage: The detected language. DominantLanguageScore: Number between 0 and 1 indicating how confident the model is that the predicted language is accurate. |
Aircall actions
Name | Description | Required Fields | Output |
Contact Create | Creates an Aircall Contact | PhoneNumber: Customer's phone number FirstName: Customer's first name LastName: Customer's last name | Body: Response body of the API call made to create the Aircall contact. Response: Entire response of API call made to create the Aircall contact. |
Chat actions
Name | Description | Required Fields | Output |
Message Send | Sends a chat message | Customer: Customer ID Body: The message you'd like to send. Conversation: Conversation ID | Body: The message inputed in the Message Send step. Conversation: The ID of the conversation. CreatedAt: Timestamp of when message was created. Id: The ID of the created Message. ModifiedAt: Timestamp of when the message was modified (In most cases this will be the same as the CreatedAt output value). SendAt: Timestamp of when the message should be sent. (In most cases this will be the same as the CreatedAt output value). Status: The status of the message. UpdatedAt: Timestamp of when the message was updated (In most cases this will be the same as the CreatedAt output value). |
Facebook actions
Name | Description | Required Fields | Output |
Pass Thread Control | Allows users to pass control of a Facebook message via the Message Platform Handover Protocol | TargetAppId: The ID for the app that is getting control. RecepientId: The PSID for the customer who sent the message. Can be found in facebookIDs attribute on the customer profile. PageId: The ID of your Facebook Business page. Can be found in facebookIDs attribute on the customer profile. | Success: Boolean indicating whether or not the handoff was successful. |
Gmail actions
Name | Description | Required Fields | Output |
Message Send | Sends an email message using Gmail | Customer: Customer ID Conversation: Conversation ID From: From email Address To: To email address | Id: Message Id of message that was sent. From: From email address To: Array of To email addresses CC: Array of CC'd email addresses BCC: Array of BCC'd email addresses Subject: Subject of email message Body: Body of email message Status: Status of message SendAt: Timestamp of when the message should be sent. (In most cases this will be the same as the CreatedAt output value). CreatedAt: Time Stamp of when message was created. ModifiedAt: Timestamp of when the message was modified (In most cases this will be the same as the CreatedAt output value). UpdatedAt: Timestamp of when the message was updated (In most cases this will be the same as the CreatedAt output value) Conversation: The ID of the conversation. |
Kustomer actions
Name | Description | Required Fields | Output |
Assistant Launch | Launches a conversational assistant on a chat conversation | PublicId: ID of the assistant you'd like to launch. MessageId: ID of the initial inbound message on the conversation. ConversationId: ID of the conversation | No output |
Command Run By Name | Allows for commands created in a custom app to run in a workflow | Name: Name of command | Varies based on command |
Company Create | Creates a company | Name: Name of the company you would like to create | The newly created company object. For a full list of available attributes, visit your company klass settings page. |
Company: Lookup (By External ID) | Finds a company with the given external ID | ExternalId: External ID of the company you'd like to find. | The company associated with the given external ID. For a full list of available attributes, visit your company klass settings page |
Company: Lookup (By ID) | Finds a company with the given company ID | Identifier: Company ID of the company you'd like to find | The company associated with the given company ID. For a full list of available attributes, visit your company klass settings page. |
Company: Update | Updates the company associated with the given company ID | Id: Company ID of the company you'd like to update. | The company associated with the given company ID. For a full list of available attributes, visit your company Klass settings page. |
Conversation Merge | Merges two conversations together | Source: ID of the conversation you'd like to merge into another conversation. This conversation will be soft deleted. Target: ID of the conversation you'd like the source to merge into. This conversation will remain on the customer timeline. | Id: ID of the merge request Status: Status of the merge request (success/failure) CreatedAt: Timestamp of when the merge took place UpdatedAt: Timestamp of when the merge request was updated (in most cases this will match the CreatedAt timestamp). Customer: Customer ID of both conversations |
Conversation Move Customer | Moves a conversation to a different customer timeline | Id: ID of conversation you'd like to move. Customer: Customer ID of destination customer timeline. | The conversation associated with the given conversation ID. For a full list of available attributes, visit your conversation Klass settings page. |
Conversation: Add Tags | Adds tags to a conversation | Id: Conversation ID Tags: List of tags you'd like to add. You can either use UI to select tags, or type in tag ID's separated by commas. | The conversation associated with the given conversation ID. For a full list of available attributes, visit your conversation Klass settings page. |
Conversation: Assign Team | Assigns a team to a conversation | Id: Conversation ID Team: ID of team you'd like to assign. You can use the UI to select a team from the drop down menu or enter in the ID of the team manually. | The conversation associated with the given conversation ID. For a full list of available attributes, visit your conversation Klass settings page. |
Conversation: Assign User | Assigns a user to a conversation | Id: Conversation ID User: ID of the user you'd like to assign. You can use the UI to select a user from the drop down menu or enter in the ID of the user manually. | The conversation associated with the given conversation ID. For a full list of available attributes, visit your conversation Klass settings page. |
Conversation: Create | Creates a conversation on the given customer's timeline. | Customer: Customer ID | The newly created conversation. |
Conversation: Lookup (By External ID) | Finds a conversation with the given external ID | ExternalId: External ID of the conversation you'd like to find. | The conversation associated with the given external ID. For a full list of available attributes, visit your conversation Klass settings page. |
Conversation: Lookup (By ID) | Finds a conversation with the given conversation ID | Id: Conversation ID | The conversation associated with the given conversation ID. For a full list of available attributes, visit your conversation Klass settings page. |
Conversation: Lookup Body | Finds the body of all messages in a given conversation | Conversation: Conversation ID Direction: (In/Out) Determines which message bodies are in the ouput. Selecting In will output inbound messages. Leaving it blank will output all messages. | Body: A string of all included message bodies concatenated together, in reverse order from the time they were created. |
Conversation: Remove Tags | Removes selected tags from the given conversation | Id: Conversation ID Tags: Tags to be removed from conversation. You can select them using the drop down menu, or enter their tag ID's manually in a comma separated list. | The conversation associated with the given conversation ID. For a full list of available attributes, visit your conversation Klass settings page. |
Conversation: Update | Updates the given conversation with the data included in the Optional Fields | Id: Conversation ID | The conversation associated with the given conversation ID. For a full list of available attributes, visit your conversation Klass settings page. |
Custom Object (KObject): Create | Creates a kObject that is not placed on any customer timeline | KlassName: The name of the klass you'd like to create. Data: Data about the kObject in JSON format. Title: A name for object you'd like to create. | The created kObject. For a full list of available attributes visit the Klass settings page for the chosen klass. |
Custom Object (KObject): Create with Customer | Creates a kObject on the given customer timeline | KlassName: The name of the klass you'd like to create. Customer: Customer ID of the timeline you'd like to add the kObject to. Data: Data about the kObject in JSON format. Title: A name for the object you'd like to create. | The created kObject. For a full list of available attributes visit the Klass settings page for the chosen klass. |
Custom Object (KObject): Delete | Deletes a kObject | Id: ID of the KObject you'd like to delete. KlassName: The name of the klass you'd like to delete. | No output |
Customer: Find by Twitter Id | Finds a customer with the given Twitter ID | Id: Twitter ID (This is not the twitter username, but can be found in the "socials" customer attribute). | The customer associated with the given Twitter ID. For a full list of available attributes, visit the customer Klass settings page. |
Customer: Find by Whatsapp | Finds a customer with the given Whatsapp phone number | Whatsapp: Whatsapp phone number | The customer associated with the given Whatsapp phone number. For a full list of available attributes, visit the customer Klass settings page. |
Customer: Append Email | Adds an email to the "Emails" attribute on the given customer profile | Id: Customer ID Email: Email you'd like to add to the customer profile | The customer associated with the given Customer ID. For a full list of available attributes, visit the customer Klass settings page. |
Customer: Append Phone | Adds a phone number to the "Phones" attribute on t he given customer profile | Id: Customer ID Phone: Phone number you'd like to add to the customer profile. | The customer associated with the given Customer ID. For a full list of available attributes, visit the customer Klass settings page. |
Customer: Create | Creates a customer | None | The created customer. For a full list of available attributes, visit the customer Klass settings page. |
Customer: Lookup (By Email) | Finds a customer with the given email address | Email: Email address | The customer associated with the given email address. For a full list of available attributes, visit the customer Klass settings page. |
Customer: Lookup (By External ID) | Finds a customer with the given external ID | ExternalId: External ID | The customer associated with the given email address. For a full list of available attributes, visit the customer Klass settings page. |
Customer: Lookup (By Facebook Messenger User ID) | Finds a customer with the given Facebook User ID and Page ID | PageId: ID of the Facebook page a customer has contacted (Can be found in "facebookIds" attribute). UserId: The Facebook Messenger ID of the customer (Can be found in "facebookIds" attribute). | The customer associated with the given Page ID and User ID. For a full list of available attributes, visit the customer Klass settings page. |
Customer: Lookup (By ID) | Finds a customer with the given Customer ID | Identifier: Customer ID | The customer associated with the given Customer ID. For a full list of available attributes, visit the customer Klass settings page. |
Customer: Lookup (By Instagram Thread ID) | Finds a customer with the given Instagram ID | ThreadId: Instagram ID (can be found in Instagram IDs customer attribute). | The customer associated with the given Instagram ID. For a full list of available attributes, visit the customer Klass settings page. |
Customer: Lookup (By Phone) | Finds a customer with the given phone number | Phone: Phone number | The customer associated with the given phone number. For a full list of available attributes, visit the customer Klass settings page. |
Customer: Lookup Last Message | Find the most recent inbound message from the customer | Customer: Customer ID | The most recent inbound message from the given customer. For a full list of available attributes, visit the message Klass settings page. |
Customer: Update | Updates the given customer with the data included in the Optional Fields | Id: Customer ID | The updated customer. For a full list of available attributes, visit the customer Klass settings page. |
Draft Delete | Deletes the draft associated with the given ID | Id: Draft ID | No output |
Draft Note Create | Creates a note draft on the customer drafts endpoint | Customer: Customer ID Conversation: Conversation ID Body: Body of the note you'd like to create. | Id: Draft ID Type: Type of object (will say draft) Channel: Draft channel (will say Note) Status: Status of the draft (will say draft) CreatedAt: Timestamp of when the draft was created UpdatedAt: Timestamp of when the draft was updated (In most cases this will be the same as the createdAt value). ModifiedAt: Timestamp of when the draft was modified (In most cases this will be the same as the createdAt value). Org: Org ID Customer: Customer ID |
Draft Postpone | Changes the SendAt attribute for a Draft allowing users to change when a draft is scheduled to be sent out | Id: Draft Id | Id: Draft ID Type: Type of object (will say draft) Channel: Draft channel (will say Note) Status: Status of the draft (will say draft) CreatedAt: Timestamp of when the draft was created. UpdatedAt: Timestamp of when the draft was updated (In most cases this will be the same as the createdAt value). ModifiedAt: Timestamp of when the draft was modified (In most cases this will be the same as the createdAt value). Org: Org ID Customer: Customer ID |
Generic Regex Match | Runs a regular expression on a string | TestString: String you would like to run through regex. Regex: Regular expression | Match: Text matched by the regular expression. Captures: Array of strings captured by the regular expression. Index: The position in the string the match can be found. Original: The string the regex was run on. |
Hook Get By Id | Finds the webhook associated with the given ID | Id: Hook Id | A GET API response with information about the given hook. |
Klass: Create | Creates a Klass | Name: Name of the Klass you'd like to create Status: enabled/disabled | Id: Klass ID Name: Name of Klass Status: Status of the Klass (enabled/disabled). CreatedAt: Timestamp of when Klass was created. UpdatedAt: Timestamp of when Klass was last updated. Org: Org ID |
Klass: Lookup (By Klass name) | Finds a Klass with the given name | Name: Name of the Klass you'd like to find. | Id: Klass ID Name: Name of Klass Status: Status of the Klass (enabled/disabled) CreatedAt: Timestamp of when Klass was created. UpdatedAt: Timestamp of when Klass was last updated. Org: Org ID |
Kobject Find By External Id | Finds a kObject with the given external Id | ExternalId: External ID KlassName: Name of the Klass | The kObject associated with the given External ID. For a full list of available attributes visit the Klass settings page for the chosen klass. |
Kobject Find First or Last | Finds the first or last kObject for the given customer based on the Sort value | Customer: Customer ID KlassName: Name of the Klass Sort:
| The first/last kObject on the given customer timeline. For a full list of available attributes visit the Klass settings page for the chosen klass. |
Merge Customers | Merges two customer profiles into one profile | Source: ID of the customer you'd like to merge into another conversation. This profile will be soft deleted. Target: ID of the customer you'd like the source to merge into. This profile will remain active. | Id: ID of customer merge request Status: Status of the request (In most cases this will say success). |
Message Find By Conversation | Finds all messages on the given conversation | Conversation: Conversation ID | A GET API response to the v1/conversationId/messages endpoint |
Message: Create | Creates a message in the UI. If no conversation is specified, a new conversation is created. (Does not send message to the customer) | Customer: Customer ID App: App used to create message (e.g. Postmark/Gmail/form) Size: Size of message, in most cases you can just input "0". Channel: Channel of the message | The created message. For a full list of available attributes, visit the message Klass settings page. |
Message: Lookup (By External ID) | Finds a message with the the given external ID | Identifier: External ID | The message associated with the given external ID. For a full list of available attributes, visit the message Klass settings page. |
Message: Lookup (By ID) | Finds a message with the given message ID | Id: Message ID | The message associated with the given message ID. For a full list of available attributes visit the message Klass settings page. |
Message: Update | Updates the given message with the data included in the Optional Fields | Id: Message ID | The message associated with the given message ID. For a full list of available attributes visit the message Klass settings page. |
Note Find By Conversation | Finds all notes on the given conversation | Conversation: Conversation ID | A GET API response to the v1/conversations/conversationId/notes endpoint |
Note Create | Creates a note on the given conversation | Conversation: Conversation ID Body: Body of the note you'd like to create | ID: Note ID Body: Text included in the note CreatedAt: Timestamp of when note was created. UpdatedAt: Timestamp of when note was updated (In most cases this will be the same as CreatedAt). Customer: Customer ID of customer associated with the given conversation. Conversation: Conversation ID of conversation the note was created on. UserMentions: Array of UserId's mentioned on the note. |
Note: Lookup (By External ID) | Finds a note with the given external ID | Identifier: External Id | ID: Note ID Body: Text included in the note CreatedAt: Timestamp of when note was created UpdatedAt: Timestamp of when note was updated (In most cases this will be the same as CreatedAt) Customer: Customer ID of customer associated with the given conversation Conversation: Conversation ID of conversation the note was created on UserMentions: Array of UserId's mentioned on the note |
Note: Lookup (By ID) | Finds a note with the given Note ID | Id: Note ID | ID: Note ID Body: Text included in the note CreatedAt: Timestamp of when note was created UpdatedAt: Timestamp of when note was updated (In most cases this will be the same as CreatedAt) Customer: Customer ID of customer associated with the given conversation Conversation: Conversation ID of conversation the note was created on UserMentions: Array of UserId's mentioned on the note |
Note: Update | Updates the given note. This can only be used on notes created by automations. This cannot be used on notes created by an agent | Id: Note ID | ID: Note ID Body: Text included in the note CreatedAt: Timestamp of when note was created UpdatedAt: Timestamp of when note was updated (In most cases this will be the same as CreatedAt) Customer: Customer ID of customer associated with the given conversation Conversation: Conversation ID of conversation the note was created on UserMentions: Array of UserId's mentioned on the note |
Org Current | Outputs the name of your org | No inputs | OrgName: The name of your org |
Publish Event | Publishes an event to the events endpoint of a conversation | Conversation: Conversation ID of the conversation you'd like to publish an event for | No outputs |
Rest API: Generic | Creates an API request using generic formatting. For more information, view our Calling a REST API Within a Workflow help article | URI: URI for your API request Method: Method of your API request | API response (varies based on request) |
Rest API: JSON | Creates an API request using JSON formatting. For more information, view our Calling a REST API Within a Workflow help article | URI: URI for your API request Method: Method of your API request | API response (varies based on request) |
Snippet Find By Key | Finds a snippet with the given key | Key: Snippet key (e.g. sn.kustomer.chat.fifteen_minutes) | Id: Snippet ID Type: Type of object (will most likely be snippet) Name: Name of the snippet App: App the snippet came from (will most likely be Kustomer) Key: Snippet key Langs: Array of languages and their translations CreatedAt: Timestamp of when snippet was created Org: Org ID |
Transform Generic | Allows users to store variables locally to be referenced in later workflow steps | Data you'd like to store in JSON format. E.g.: "variable1": "value1", "variable2":"value2", "variable3": "value3" | An "Output" JSON object that contains the data added in the "input" field. |
User: Find By Email | Finds a user with the given email | Email: Email address | Id: User ID DisplayName: User's display name Name: User's name UserType: Type of user (user/machine) Email: User email EmailVerifiedAt: Timestamp of when the user verified their email Email Signature: User's email signature CreatedAt: Timestamp of when the user was created UpdatedAt: Timestamp of when the user was last updated |
User: Find By ID | Finds a user with the given User ID | Id: User ID | Id: User ID DisplayName: User's display name Name: User's name UserType: Type of user (user/machine) Email: User email EmailVerifiedAt: Timestamp of when the user verified their email Email Signature: User's email signature CreatedAt: Timestamp of when the user was created UpdatedAt: Timestamp of when the user was last updated |
Work Item Find By Queue | Finds all work items in the given Queue | Queue: Queue ID | A GET API response to the v1/routing/queues/queueId/work-items endpoint |
Work Item Find Next Work Item By Queue | Finds the next work-item in the given queue that is going to be routed to an agent | Queue: Queue ID | Id: Work-item ID Type: Type of object (will most likely say work-item). ResourceType: Resource being worked on. Currently this is always conversation. Status: Current status that the work item is in. Will be one of ivr, queued, routed, assigned, wrap-up, completed. Paused: Whether or not this conversation is paused. Currently maps to snoozed state in conversation. Channel: Channel of the associated conversation. FirstEnterQueueAt: Timestamp of when the work-item entered the queue. QueuedCount: Number of times the work-item has entered a queued state. Priority: Priority of the associated queue. ItemSize: Weight of the item as indicated by the associated queue. CreatedAt: Timestamp of when work-item was created. UpdatedAt: Time stamp of when work-item was last updated. ModifiedAt: Timestamp of when the work-item was last modified. ResourceRev: Number of revisions of the associated resource (conversation). ResourceCreatedAt: Timestamp of when the associated resource (conversation) was created. Rev: Number of revisions made on the work-item. LastRevision: Object containing information about the last revision made on the work-item. Queue: Queue ID of the associated queue |
Work Session Find By Status Type | Finds all work-sessions associated with the given queue that have the given status | Queue: Queue ID Status: Work-session status (available/unavailable/busy) | A GET API response to the v1/routing/queues/queueId/work-sessions endpoint with a query on the given status. |
Postmark actions
Name | Description | Required Fields | Output |
Message Send | Sends an email message using Postmark | Customer: Customer ID Conversation: Conversation ID From: From email Address To: To email address | Id: Message Id of message that was sent From: From email address To: Array of To email addresses CC: Array of CC'd email addresses BCC: Array of BCC'd email addresses Subject: Subject of email message Body: Body of email message Status: Status of message SendAt: Timestamp of when the message should be sent. (In most cases this will be the same as the Created At output value). CreatedAt: Time Stamp of when message was created ModifiedAt: Timestamp of when the message was modified (In most cases this will be the same as the Created At output value). UpdatedAt: Timestamp of when the message was updated (In most cases this will be the same as the Created At output value). Conversation: The ID of the conversation |
Scheduler actions
Name | Description | Required Fields | Output |
Schedule a Workflow | Schedules a callable workflow | WorkflowTitle: Name of workflow you'd like to schedule Type: Determines whether the workflow is called on an absolute date or a relative date | No output |