Explore Xano Actions

Featured
Postmark -> Send Email With Template
Function Documentation: Postmark → Send Email with Template Overview This function allows you to send emails using the Postmark API with a pre-defined template. You can specify the recipient email address, the template ID, and the data to populate the template placeholders. Inputs postmarkbaseurl (registry|text) Required Description: The base url for calling the Postmark API (e.g., "https://api.postmarkapp.com/"). postmarkservertoken (registry|text) Required Sensitive data Description: This is the Postmark Server API Token (e.g., "14g8dce4-7054-47c9-a18a-2107e5cf4e41"). This is needed for authentication on endpoints. from_email (text) Required Description: The email address that will appear as the sender. Example: noreply@yourdomain.com to_emails (text) Required Description: A list of email addresses to send the batch emails to. Example: user1@example.com template_id (integer) Required Description: The ID of the Postmark template to use. Example: 12345 template_model (json) Required Description: The data to populate the template placeholders. The structure of this data depends on your specific Postmark template. Example: Refer to Postmark documentation for template data structure. Function Stack Create Variable: Create Variable: api_url Purpose: Constructs the API URL for sending emails with templates. Create Variable: Create Variable: api_token Purpose: Stores the Postmark API token. Precondition: Precondition: from_email should not exceed 255 characters. Purpose: Ensures the sender email address is not too long. Precondition: from_email is a valid email format. Purpose: Ensures the sender email address is formatted correctly. Precondition: to_email is a valid email format and allows comma-separated values. Purpose: Ensures recipient email addresses are formatted correctly and the list is not too long. Precondition: to_email should not exceed 50 email addresses. Purpose: Limits the number of recipients per batch. Postmask API Request: API Request to: https://api.postmarkapp.com/email Purpose: Sends a POST request to the api_url with the following payload: `JSON { "from_email": "noreply@yourdomain.com", "to_email": "user@example.com", "template_id": 12345, "template_model": { "name": "John Doe", "email": "john.doe@example.com" } } ` Create Variable: Create Variable: postmark_response Purpose: Stores the response from the Postmark API. Create Variable: Create Variable: response Purpose: Creates a response object with the result from the Postmark API. Response The function returns the result from the Postmark API response. Success response `json { "To": "user1@example.com", "SubmittedAt": "2024-10-07T14:33:15.817Z", "MessageID": "message-id-1", "ErrorCode": 0, "Message": "OK" }, { "To": "user2@example.com", "SubmittedAt": "2024-10-07T14:33:15.817Z", "MessageID": "message-id-2", "ErrorCode": 0, "Message": "OK" } ` Error response `json { "ErrorCode": 401, "Message": "Unauthorized: Missing or incorrect API key." } ` Example Input `json { "from_email": "noreply@yourdomain.com", "to_email": "user@example.com", "template_id": 12345, "template_model": { "name": "John Doe", "email": "john.doe@example.com" } } ` Output `json { "To": "user@example.com", "SubmittedAt": "2024-10-07T14:33:15.817Z", "MessageID": "message-id-1", "ErrorCode": 0, "Message": "OK" } `

OpenAI -> Summarize
Function Documentation: OpenAI -> Summarize (Simple) OpenAI Vision API; Overview This function summarizes a piece of text using the OpenAI API. It requires an input text and returns a summary of that text. Inputs openaiapikey (registry | text) Required Description: The API key required to access the OpenAI API for processing the input text. input_text (text) Required Description: The text that needs to be summarized. model (enum) Optional Description: Specifies the model to be used for generating the summary. Options: gpt-4o-mini (default) gpt-4o gpt-4o-turbo Function Stack OpenAI API Request API Request to https://api.openai.com/v1/chat/completions Purpose: Sends a request to the OpenAI API to summarize the input text. Precondition: API Request Success Precondition: openai_api.response.status == 200 Purpose: Ensures that the API request was successful (HTTP status code 200). OpenAI API Response Content Create Variable: response Purpose: Stores the summary response content from the OpenAI API, retrieved from the result. Response The function returns a summary of the provided input text. Success response `json { "summary": "A brief and concise explanation of the input text." } ` Error response `json { "error": { "message": "API key is missing or invalid." } } ` Example Input `json { "openaiapikey": "sk-xxxxxx", "input_text": "Artificial Intelligence has transformed many industries...", "model": "gpt-4" } ` Output `json { "summary": "AI has greatly impacted various industries through automation and efficiency." } `

OpenAI -> Get embeddings
Function Documentation: OpenAI -> Get Embeddings OpenAI Embeddings API Overview This function generates an embedding for a given text input using the OpenAI API. It requires parameters such as the input text & model. The function ensures that the necessary environment variables are set and verifies conditions before making the API request and processing the response. Inputs openaiapikey (registry|text) Required Sensitive data Description: The API key for your OpenAI account. input_text (text) Required Description: The text input for which an embedding will be generated by the OpenAI API. model (enum) Required Description: Specifies the model to be used for generating the embedding. Options: text-embedding-3-small (default) text-embedding-3-large text-embedding-ada-002 Function Stack OpenAI API Request API Request to https://api.openai.com Purpose: Sends a request to the OpenAI API using the specified model and input text. Precondition: openaiapiresponse.status == 200 Purpose: Confirms that the API request was successful (HTTP status code 200). OpenAI API Response Create Variable: response Purpose: Stores the response from the OpenAI API. Response The function returns the generated embedding. Success response `json { [ 0.020631326, -0.0042284927, . . . 0.03682661 ] } ` Error response `json { "message": "Incorrect API key provided: sk-Nosne***GQPD. You can find your API key at https://platform.openai.com/account/api-keys." } ` Example Input `json { "input_text": "Welcome to Xano Actions!", "model": "text-embedding-3-small", "showtokenusage": true } ` Response `json { [ 0.020631326, -0.0042284927, . . . 0.03682661 ] } `

Paginate array
The array paginator is a function that divides a large array into smaller chunks, allowing you to display only a specific portion (or “page”) of the array at a time. It takes in parameters like the number of items you want per page (per_page) and the current page (page), and returns a portion of the array corresponding to that page. This is useful if you are working with Redis lists, need to break apart a large dataset into smaller chunks for loops and more. In addition to the paginated items, it also calculates useful metadata, such as: • The total number of items in the array. • The total number of pages. • The current page. • The next page (if there is one). • The previous page (if there is one). This allows for easier navigation through large datasets by breaking them up into smaller, manageable “pages.”

Hubspot -> List Contacts
Function Documentation: HubSpot → List Contacts Overview This function retrieves a list of contacts from HubSpot. It involves setting environment variables, preparing the request with optional parameters, and handling the response from the HubSpot API. Inputs hubspotapikey (registry|text) Required Sensitive data Description: The API key for your HubSpot account. after (integer) Description: The paging cursor to get the next set of contacts. properties (text[]) Description: A list of contact properties to retrieve. Function Stack HubSpot API Request API Request to https://api.hubapi.com/crm/v3/objects/contacts Purpose: Sends a GET request to retrieve contacts from HubSpot. Parameters: Includes archived=false, optional after cursor, and specified properties. Preconditions Precondition: hubspot_api.response.status == 200 Purpose: Ensures successful retrieval of contacts with HTTP status code 200. Response The function returns the result from the HubSpot API response. Success response `json { "results": [ { "id": "123456789", "properties": { "createdate": "2024-09-12T11:36:05.267Z", "hsmarketablestatus": "false", "hsobjectid": "123456789", "lastmodifieddate": "2024-09-12T11:36:22.982Z" }, "createdAt": "2024-09-12T11:36:05.267Z", "updatedAt": "2024-09-12T11:36:22.982Z", "archived": false }, . . . ], "paging": { "next": { "after": "123456789", "link": "https://api.hubapi.com/crm/v3/objects/contacts/?archived=false&after=123456789&properties=hsmarketablestatus" } } } ` Error response `json { "message": "Uh oh! Hubspot returned with an error: Authentication credentials not found. This API supports OAuth 2.0 authentication and you can find more details at https://developers.hubspot.com/docs/methods/auth/oauth-overview" } ` Example Input `json { "after": 0, "properties": [ "hsmarketablestatus" ] } ` Output `json { "results": [ { "id": "12345", "properties": { "createdate": "2024-09-12T11:36:05.267Z", "hsmarketablestatus": "false", "hsobjectid": "57309372733", "lastmodifieddate": "2024-09-12T11:36:22.982Z" }, "createdAt": "2024-09-12T11:36:05.267Z", "updatedAt": "2024-09-12T11:36:22.982Z", "archived": false }, . . . ], "paging": { "next": { "after": "1234", "link": "https://api.hubapi.com/crm/v3/objects/contacts/?archived=false&after=12345&properties=hsmarketablestatus" } } } `

QuickBooks -> Create Payment
Function Documentation: QuickBooks -> Create Payment Quickbooks API documentation Overview This function creates a payment in QuickBooks by making an API call. It uses the QuickBooks API with the provided realm ID, amount, and consumer reference. This action works on production environment only, for sandbox environment refer documentation at https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/payment#create-a-payment. Inputs quickbooksrealmid (registry/text) Required Description: The QuickBooks realm ID associated with the account. Example: quickbooksrealmabc123 amount (decimal) Required Description: The amount of the payment to be created. Example: 100.50 consumer_ref (integer) Required Description: A reference number associated with the consumer. Example: 12345 quickbooksapitoken (registry|text) Required Description: The JWT token used to authenticate requests to the quickbooks API. Example: xkeysib-... Function Stack Try / Catch Block QuickBooks API Call API Request to https://quickbooks.api.intuit.com/v3/company/{quickbooksrealmid}/payment Purpose: Sends a payment creation request to QuickBooks using the realm ID, amount, and consumer reference. Return Value: The API response is stored as response. Response Variable Variable: var: response = var: quickbooksapiresponse.response Purpose: Captures the response returned by the QuickBooks API. Error Handling (Catch) Create Variable: response Purpose: Catches and handles any errors that occur during the QuickBooks API call and logs the error message. Response The function returns the result of the QuickBooks payment creation. Success Response `json { "Payment": { "CustomerRef": { "value": "20", "name": "Red Rock Diner" }, "DepositToAccountRef": { "value": "4" }, "TotalAmt": 25, "UnappliedAmt": 25, "ProcessPayment": false, "domain": "QBO", "sparse": false, "Id": "150", "SyncToken": "0", "MetaData": { "CreateTime": "2024-10-11T07:17:33-07:00", "LastUpdatedTime": "2024-10-11T07:17:33-07:00" }, "TxnDate": "2024-10-11", "CurrencyRef": { "value": "USD", "name": "United States Dollar" } }, "time": "2024-10-11T07:17:32.610-07:00" } ` Error Response `json { "type": "error", "error": { "code": "paymentcreationfailed", "message": "Failed to create the payment due to an invalid realm ID." } } ` Example Input `json { "quickbooksrealmid": "{quickbooksrealmid}", "amount": "{amount}", "consumerref": "{consumerref}" } ` Output `json { "Payment": { "CustomerRef": { "value": "20", "name": "Red Rock Diner" }, "DepositToAccountRef": { "value": "4" }, "TotalAmt": 25, "UnappliedAmt": 25, "ProcessPayment": false, "domain": "QBO", "sparse": false, "Id": "150", "SyncToken": "0", "MetaData": { "CreateTime": "2024-10-11T07:17:33-07:00", "LastUpdatedTime": "2024-10-11T07:17:33-07:00" }, "TxnDate": "2024-10-11", "CurrencyRef": { "value": "USD", "name": "United States Dollar" } }, "time": "2024-10-11T07:17:32.610-07:00" } `

Postmark -> Send Batch Emails
Postmark → Send Batch Emails Overview This function allows you to send a batch of emails using the Postmark API. It requires parameters such as the sender email address, recipient email addresses, subject, body, and optionally a template ID. Inputs postmarkbaseurl (registry|text) Required Description: The base url for calling the Postmark API (e.g., "https://api.postmarkapp.com/"). postmarkservertoken (registry|text) Required Sensitive data Description: This is the Postmark Server API Token (e.g., "14g8dce4-7054-47c9-a18a-2107e5cf4e41"). This is needed for authentication on endpoints. message (Object[]) Required Description: An Object of message, each containing the following properties: from_email (text) Required Description: The email address of the sender. to_email (text) Required Description: The email address of the recipient. subject (text) Required Description: The subject line of the email. html_body (text) Optional Description: The HTML content of the email message. If provided, it takes precedence over text_body. text_body (text) Optional Description: The plain text content of the email message. If provided and html_body is not, it will be used. Function Stack Create Variable: api_url Purpose: Constructs the API URL for sending batch emails. Create Variable: api_token Purpose: Stores the Postmark API token. Create Variable: messages_payload Purpose: Initializes an empty array to store the Postmark formatted messages. Precondition Precondition: from_email should not exceed 255 characters. Purpose: Ensures the sender email address is not too long. Precondition: from_email is a valid email format. Purpose: Ensures the sender email address is formatted correctly. Precondition: to_email is a valid email format and allows comma-separated values. Purpose: Ensures recipient email addresses are formatted correctly and the list is not too long. Precondition: to_email should not exceed 50 email addresses. Purpose: Limits the number of recipients per batch. Precondition: textbody or htmlbody != null Purpose: Either textbody or htmlbody (or both) are provided. Precondition: html_body is a valid HTML format Purpose: html_body is a valid HTML format Convert Message: Postmark Format Purpose: Create a Postmark message object with the required fields, ensuring that to_email is converted to an array if it's a comma-separated list. Update Variable: Increment message_counter. Purpose: Update message_counter. API Request Sends a POST request to the apiurl with the messagespayload as the request body. Create Variable: postmark_response Purpose: Stores the response from the Postmark API. 7 Create Variable: response Purpose: Creates a response object with the result from the Postmark API. Response The function returns a success message or an error message depending on the outcome. Success Response `json { "To": "user1@example.com", "SubmittedAt": "2024-10-07T14:33:15.817Z", "MessageID": "message-id-1", "ErrorCode": 0, "Message": "OK" }, { "To": "user2@example.com", "SubmittedAt": "2024-10-07T14:33:15.817Z", "MessageID": "message-id-2", "ErrorCode": 0, "Message": "OK" } ` Error Response `json { "ErrorCode": 401, "Message": "Unauthorized: Missing or incorrect API key." } ` Example Input `json { "message": [ { "from_email": "sender@example.com", "to_email": "recipient1@example.com,recipient2@example.com", "subject": "Welcome to Our Service", "html_body": "<h1>Welcome!</h1><p>Thank you for joining our service.</p>", "text_body": "Welcome! Thank you for joining our service." }, { "from_email": "admin@example.com", "to_email": "recipient3@example.com", "subject": "Important Update", "html_body": "<h1>Update</h1><p>Here’s an important update for you.</p>" } ] } ` Output `json [ { "To": "recipient1@example.com", "SubmittedAt": "2024-10-07T14:33:15.817Z", "MessageID": "message-id-1", "ErrorCode": 0, "Message": "OK" }, { "To": "recipient2@example.com", "SubmittedAt": "2024-10-07T14:33:15.817Z", "MessageID": "message-id-2", "ErrorCode": 0, "Message": "OK" }, { "To": "recipient3@example.com", "SubmittedAt": "2024-10-07T14:33:15.817Z", "MessageID": "message-id-3", "ErrorCode": 0, "Message": "OK" } ] `

OpenAI -> Generate an image
Function Documentation: OpenAI → Generate an image (Simple) OpenAI Vision API Overview This function generates an image using the OpenAI API based on a text prompt, with options for size and model. It is designed to take user input, validate it, and return an image URL if the request is successful. Inputs openaiapikey (registry | text) Purpose: API key required to authenticate with OpenAI's image generation endpoint. Example: "sk-...your-key-here" prompt (text) Purpose: The text description for the image to generate. Example: "A futuristic city with flying cars" img_size (enum) Purpose: The size of the generated image. Options: "1024x1024" "1024x1792" "1792x1024" model (enum) Purpose: The OpenAI model to use for generating the image. Options: "dall-e-3" "dall-e-2" Function Stack OpenAI API Request Endpoint: https://api.openai.com/v1/images/generations Purpose: Sends a POST request to the OpenAI API with the prompt and image size parameters. Preconditions Condition: openai_api.response.status == 200 Purpose: Ensures that the request was successful (HTTP 200 status code). OpenAI API Response Create Variable: response Purpose: Stores the response from OpenAI API, which contains the URL of the generated image. Response The function returns the generated image URL or image content. Success response `json { "image_url": "https://api.openai.com/v1/images/abcd1234" } ` Error response `json { "message": "Incorrect API key provided: ssk-None***GQPD. You can find your API key at https://platform.openai.com/account/api-keys." } ` Example Input Headers: Authorization: Bearer openaiapikey Body: `json { "prompt": "A futuristic city with flying cars", "size": "1024x1024", "model": "DALL-E" } ` Output `json { "image_url": "https://api.openai.com/v1/images/abcd1234" } `

Postmark -> Send Single Email
Postmark → Send Single Email Overview This function allows you to send a single email using the Postmark API. It requires parameters such as the sender email address, recipient email address, subject, body (in either HTML or plain text format), and optionally a template ID. Inputs postmarkbaseurl (registry|text) Required Description: The base url for calling the Postmark API (e.g., "https://api.postmarkapp.com/"). postmarkservertoken (registry|text) Required Sensitive data Description: This is the Postmark Server API Token (e.g., "14g8dce4-7054-47c9-a18a-2107e5cf4e41"). This is needed for authentication on endpoints. from_email (text) Required Description: The email address of the sender. Example: noreply@yourdomain.com to_email (text) Required Description: The email address of the recipient. Example: user@example.com subject (text) Required Description: The subject line of the email. Example: Welcome to Our Service html_body (text) Optional Description: The HTML content of the email message. If provided, it takes precedence over text_body. Example: <h1>Hello, John!</h1><p>Thank you for signing up.</p> text_body (text) Optional Description: The plain text content of the email message. If provided and html_body is not, it will be used. Example: Hello, John! Thank you for signing up. Function Stack Create Variable Create Variable: api_url Purpose: Constructs the API URL for sending single emails. Create Variable Create Variable: api_token Purpose: Stores the Postmark API token. Precondition Logic Precondition: from_email should not exceed 255 characters. Purpose: Ensures the sender email address is not too long. Precondition: from_email is a valid email format. Purpose: Ensures the sender email address is formatted correctly. Precondition: to_email is a valid email format. Purpose: Ensures recipient email address is formatted correctly. Precondition: to_email should not exceed 50 email addresses. Purpose: Limits the number of recipients to avoid batch size issues. Precondition: Either textbody or htmlbody (or both) are provided. Purpose: Ensures that at least one form of email content is available. Precondition: html_body is a valid HTML format. Purpose: Ensures that if HTML is provided, it is well-formed. API Request API Request to: https://api.postmarkapp.com/email Purpose: Sends a POST request to the api_url with the following payload: `json { "from_email": "noreply@yourdomain.com", "to_email": "user@example.com", "subject": "Welcome to Our Service", "html_body": "<h1>Hello, John!</h1><p>Thank you for signing up.</p>", // Optional "text_body": "Hello, John! Thank you for signing up." // Optional } ` Create Variable Create Variable: postmark_response Purpose: Stores the response from the Postmark API. Create Variable Create Variable: response Purpose: Creates a response object containing the result from the Postmark API. Conditional Check Conditional: Checks if the response status is 200 and the error code is 0. If True: Updates the response object to indicate success. If False: Updates the response object to indicate an error. Response The function returns either a success message or an error message depending on the outcome. Success Response `json { "To": "user@example.com", "SubmittedAt": "2024-10-07T14:33:15.817Z", "MessageID": "message-id-1", "ErrorCode": 0, "Message": "OK" } ` Error Response `json { "ErrorCode": 401, "Message": "Unauthorized: Missing or incorrect API key." } ` Example Input `json { "from_email": "noreply@yourdomain.com", "to_email": "user@example.com", "subject": "Welcome to Our Service", "html_body": "<h1>Hello, John!</h1><p>Thank you for signing up.</p>", "text_body": "Hello, John! Thank you for signing up." } ` Output `json { "To": "user@example.com", "SubmittedAt": "2024-10-07T14:33:15.817Z", "MessageID": "message-id-1", "ErrorCode": 0, "Message": "OK" } `

Hubspot -> List Deals
HubSpot → List Deals Overview This function retrieves a list of deals from HubSpot. It involves setting environment variables, preparing the request with optional parameters, and handling the response from the HubSpot API. Inputs hubspotapikey (registry|text) Required Sensitive data Description: The API key for your HubSpot account. after (integer) Description: The paging cursor to get the next set of deals. limit (integer) Description: The maximum number of deals to retrieve. properties (text[]) Description: A list of deal properties to retrieve. propertieswithhistory (text[]) Description: A list of deal properties with their history to retrieve. Function Stack HubSpot API Request API Request to https://api.hubapi.com/crm/v3/objects/deals Purpose: Sends a GET request to retrieve deals from HubSpot. Parameters: Includes optional after cursor, limit, and specified properties. Preconditions Precondition: hubspot_api.response.status == 200 Purpose: Ensures successful retrieval of deals with HTTP status code 200. Response The function returns the result from the HubSpot API response. Success response `json { "deal_id": 22413038713, "properties": [], "propertieswithhistory": [ "closedwonreason" ] } ` Error response `json { "message": "Uh oh! Hubspot returned with an error: Authentication credentials not found. This API supports OAuth 2.0 authentication and you can find more details at https://developers.hubspot.com/docs/methods/auth/oauth-overview" } ` Example Input `json { "after": "22393633108", "limit": 10, "properties": [], "propertieswithhistory": [ "dealname" ] } ` Output `json [ { "id": "22393633108", . . . }, . . ] `

Hubspot -> Create Deal
Function Documentation: HubSpot → Create Deal Overview This function creates a new deal in HubSpot using specified input parameters. It involves setting environment variables, preparing the request with deal details, and handling the response from the HubSpot API. Inputs hubspotapikey (registry|text) Required Sensitive data Description: The API key for your HubSpot account. name (text) Description: The name of the deal. deal_stage (enum) Description: The stage of the deal. Options appointmentscheduled qualifiedtobuy presentationscheduled decisionmakerboughtin contractsent closedwon closedlost close_date (timestamp) Description: The expected close date of the deal. A unix timestamp in milliseconds. owner_id (integer) Description: The ID of the owner of the deal. amount (decimal) Description: The amount associated with the deal. additional_properties (json) Description: Additional properties in JSON format for the deal. Function Stack Create Properties Object Create Variable: properties_obj Purpose: Sets properties object from input: additional_properties and other input fields. HubSpot API Request API Request to https://api.hubapi.com/crm/v3/objects/deals Purpose: Sends a POST request to create a new deal in HubSpot. Preconditions Precondition: hubspot_api.response.status == 201 Purpose: Ensures successful creation of the deal with HTTP status code 201. Response The function returns the result from the HubSpot API response. Success response `json { "id": "22658811284", "properties": { "createdate": "2024-09-26T11:47:07.243Z", . . . }, "createdAt": "2024-09-26T11:47:07.243Z", "updatedAt": "2024-09-26T11:47:07.243Z", "archived": false } ` Error response `json { "message": "Uh oh! Hubspot returned with an error: Authentication credentials not found. This API supports OAuth 2.0 authentication and you can find more details at https://developers.hubspot.com/docs/methods/auth/oauth-overview" } ` Example Input `json { "name": "Xano Actions", "deal_stage": "qualifiedtobuy", "close_date": 1729771263000, "owner_id": 0, "amount": 1456.55, "additional_properties": { "closedwonreason": "Quick deployment" } } ` Output `json { "id": "22651426560", "properties": { "amount": "1456.55", . . . }, "createdAt": "2024-09-26T12:02:50.213Z", "updatedAt": "2024-09-26T12:02:50.213Z", "archived": false } `

Hubspot -> Get Deal
HubSpot → Get Deal Overview This function retrieves a specific deal from HubSpot using the deal's ID. It involves setting environment variables, preparing the request, and handling the response from the HubSpot API. Inputs hubspotapikey (registry|text) Required Sensitive data Description: The API key for your HubSpot account. deal_id (integer) Description: The unique identifier of the deal to be retrieved. properties (text[]) Description: A list of deal properties to retrieve. propertieswithhistory (text[]) Description: A list of deal properties with their history to retrieve. Function Stack HubSpot API Request API Request to https://api.hubapi.com/crm/v3/objects/deals/{deal_id} Purpose: Sends a GET request to retrieve the specified deal from HubSpot. Preconditions Precondition: hubspot_api.response.status == 200 Purpose: Ensures successful retrieval of the deal with HTTP status code 200. Response The function returns the result from the HubSpot API response. Success response `json { "deal_id": 22413038713, "properties": [], "propertieswithhistory": [ "closedwonreason" ] } ` Error response `json { "message": "Uh oh! Hubspot returned with an error: Authentication credentials not found. This API supports OAuth 2.0 authentication and you can find more details at https://developers.hubspot.com/docs/methods/auth/oauth-overview" } ` Example Input `json { "deal_id": 22413038713, "properties": [], "propertieswithhistory": [ "closedwonreason" ] } ` Output `json { "id": "22413038713", "properties": { "amount": "1456.55", . . . }, "createdAt": "2024-09-26T12:02:50.213Z", "updatedAt": "2024-09-26T12:02:50.213Z", "archived": false } `

OpenAI -> Describe an Image from a URL
Function Documentation: OpenAI -> Describe an Image from a URL OpenAI Vision API Overview This function generates a description of an image using the OpenAI API based on the provided image URL. It requires parameters such as the image URL & model. The function ensures necessary environment variables are set and verifies conditions before making the API request and processing the response. Inputs openaiapikey (registry|text) Required Sensitive data Description: The API key for your OpenAI account. image_url (text) Required Description: The URL of the image that will be sent to the OpenAI API for generating the description. model (enum) Required Description: Specifies the model to be used for generating the image description. Options: gpt-4o-mini (default) gpt-4o Function Stack OpenAI API Request API Request to https://api.openai.com Purpose: Sends a request to the OpenAI API using the specified model and image URL. Precondition: openaiapiresponse.status == 200 Purpose: Confirms that the API request was successful (HTTP status code 200). OpenAI API Response Create Variable: response Purpose: Stores the response from the OpenAI API. Response The function returns the generated image description, optionally including token usage details if the showtokenusage flag is set to true. Success response `json { "The image depicts a model or miniature of a fortified castle or walled city. It features a large structure at the top, resembling a castle, with walls and towers surrounding smaller buildings that likely represent a village or town inside the fortifications. The overall layout suggests a historical or fantasy setting, commonly seen in architectural models or films." } ` Error response `json { "message":"Invalid image." } ` Example Input `json { "imageurl": "https://upload.wikimedia.org/wikipedia/commons/b/b7/MedievalDurr%C3%ABs.jpg", "model": "gpt-4o-mini", } ` Response `json { "The image depicts a model or miniature of a fortified castle or walled city. It features a large structure at the top, resembling a castle, with walls and towers surrounding smaller buildings that likely represent a village or town inside the fortifications. The overall layout suggests a historical or fantasy setting, commonly seen in architectural models or films." } `

Hubspot -> Update Deal
HubSpot → Update Deal Overview This function allows you to edit an existing deal in HubSpot using specified input parameters. It involves setting environment variables, preparing the request with updated deal details, and handling the response from the HubSpot API. Inputs hubspotapikey (registry|text) Required Sensitive data Description: The API key for your HubSpot account. name (text) Description: The updated name of the deal. deal_stage (enum) Description: The updated stage of the deal. Options appointmentscheduled qualifiedtobuy presentationscheduled decisionmakerboughtin contractsent closedwon closedlost close_date (timestamp) Description: The updated expected close date of the deal in unix timestamp format in milliseconds. owner_id (integer) Description: The updated ID of the owner of the deal. amount (decimal) Description: The updated amount associated with the deal. deal_id (text) Description: The unique identifier of the deal to be edited. additional_properties (json) Description: Additional properties in JSON format to be updated. Function Stack Create Properties Object Create Variable: properties_obj Purpose: Sets properties object from input: additional_properties and other input fields. HubSpot API Request API Request to https://api.hubapi.com/crm/v3/objects/deals/{deal_id} Purpose: Sends a PATCH request to update the specified deal in HubSpot. Preconditions Precondition: hubspot_api.response.status == 200 Purpose: Ensures successful update of the deal with HTTP status code 200. Response The function returns the result from the HubSpot API response. Success response `json { "name": "Xano Actions", "deal_stage": "qualifiedtobuy", "close_date": 1729771263000, "owner_id": 0, "amount": 1456.55, "additional_properties": { "closedwonreason": "Quick deployment" }, "deal_id": "22413038713" } ` Error response `json { "message": "Uh oh! Hubspot returned with an error: Authentication credentials not found. This API supports OAuth 2.0 authentication and you can find more details at https://developers.hubspot.com/docs/methods/auth/oauth-overview" } ` Example Input `json { "name": "Xano Actions", "deal_stage": "qualifiedtobuy", "close_date": 1729771263000, "owner_id": 0, "amount": 1456.55, "additional_properties": { "closedwonreason": "Quick deployment" }, "deal_id": "22413038713" } ` Output `json { "id": "22413038713", "properties": { "amount": "1456.55", . . . }, "createdAt": "2024-09-26T12:02:50.213Z", "updatedAt": "2024-09-26T12:02:50.213Z", "archived": false } `

Hubspot -> Create Contact
Function Documentation: HubSpot → Create Contact Overview This function creates a new contact in HubSpot using specified input parameters. It involves setting environment variables, preparing the request, and handling the response. Inputs hubspotapikey (registry|text) Required Sensitive data Description: The API key for your HubSpot account. first_name (text) Description: The first name of the contact. last_name (text) Description: The last name of the contact. email (text) Description: The email address of the contact. company (text) Description: The company associated with the contact. lead_status (enum) Description: The lead status of the contact. Options: NEW OPEN IN_PROGRESS OPEN_DEAL UNQUALIFIED ATTEMPTEDTOCONTACT CONNECTED BAD_TIMING contact_owner (integer) Description: The owner of the contact. phone_number (text) Description: The phone number of the contact. additional_properties (json) Description: Additional properties in JSON format. Schema: `json { "additionalProp1": "string", "additionalProp2": "string", "additionalProp3": "string" } ` Function Stack Set Properties Object Create Variable: properties_object Purpose: Sets properties object from input: additional_properties. HubSpot API Request API Request to https://api.hubapi.com/crm/v3/objects/contacts Purpose: Sends a POST request to create a new contact in HubSpot. Preconditions Precondition: hubspot_api.response.status == 201 Purpose: Ensures successful creation of the contact with HTTP status code 201. Response The function returns the result from the HubSpot API response. Success response `json { "id": "12345678", "properties": { "company": "Xano", . . . }, "createdAt": "2024-09-23T13:26:23.352Z", "updatedAt": "2024-09-23T13:26:23.352Z", "archived": false } ` Error message `json { "message":"Uh oh! Hubspot returned with an error: Property values were not valid: [{\"isValid\":false,\"message\":\"Property \\\"prop2\\\" does not exist\",\"error\":\"PROPERTYDOESNTEXIST\",\"name\":\"prop2\",\"localizedErrorMessage\":\"Property \\\"prop2\\\" does not exist\",\"portalId\":47373842},{\"isValid\":false,\"message\":\"Property \\\"prop1\\\" does not exist\",\"error\":\"PROPERTYDOESNTEXIST\",\"name\":\"prop1\",\"localizedErrorMessage\":\"Property \\\"prop1\\\" does not exist\",\"portalId\":47373842}]" } ` Example Input `json { "first_name": "Unico", "last_name": "Connect", "email": "imagine@xano.com", "company": "UC", "lead_status": "OPEN", "contact_owner": 0, "phone_number": "123456", "customer_Id": 0, "additional_properties": { "mobilephone":"123456" } } ` Output `json { "id": "123456789", "properties": { "company": "UC", "createdate": "2024-09-23T13:30:40.386Z", "email": "imagine@xano.com", "firstname": "Unico", "hsallcontact_vids": "60968500829", "hscurrentlyenrolledinprospecting_agent": "false", "hsemaildomain": "xano.com", "hsiscontact": "true", "hsisunworked": "true", "hsleadstatus": "OPEN", "hslifecyclestagelead_date": "2024-09-23T13:30:40.386Z", "hsmarketablestatus": "false", "hsmarketableuntil_renewal": "false", "hsmembershiphasaccessedprivate_content": "0", "hsobjectid": "60968500829", "hsobjectsource": "INTEGRATION", "hsobjectsource_id": "3898752", "hsobjectsource_label": "INTEGRATION", "hs_pipeline": "contacts-lifecycle-pipeline", "hsregisteredmember": "0", "hssearchablecalculatedmobilenumber": "123456", "hssearchablecalculatedphonenumber": "123456", "lastmodifieddate": "2024-09-23T13:30:40.386Z", "lastname": "Connect", "lifecyclestage": "lead", "mobilephone": "123456", "phone": "123456" }, "createdAt": "2024-09-23T13:30:40.386Z", "updatedAt": "2024-09-23T13:30:40.386Z", "archived": false } `

Claude AI -> Ask a Question
Function Documentation: Claude AI -> Ask a Question Claude AI API documentation Overview This function sends a message request to the Claude AI API using the provided API key, prompt, and token limit. The function captures the response from the Claude API and returns it. Inputs claudeapikey (registry/text) Required Description: The API key used to authenticate requests to the Claude AI API. Example: claudeapiabc123 prompt (text) Required Description: The prompt or message that you want to send to Claude AI as role user. Example: What is the capital of France? max_token (integer) Required Description: The maximum number of tokens to be used for generating the response, Default - 1024. Example: 1024 assistant_prompt (text) Optional Description: The prompt or message that you want to send to Claude AI as role assistant. Default - As an enthusiastic assistant, provide clear and understandable responses. Example: `As an enthusiastic assistant, provide clear and understandable responses Function Stack Try / Catch Block Group: Claude API Request API Request to https://api.anthropic.com/v1/messages Purpose: Sends the prompt to the Claude AI API with the API key, prompt, assistant prompt, and token limit. Return Value: The API response is stored as api_response. Example: ` json { "model": "claude", "message": [ { "role": "user", "content": "prompt" }, { "role": "assistant", "content": "assistant_prompt" } ] } ` Create Variable: response Variable: var: response = var: api_response.response Purpose: Stores the API response, including the message generated by Claude AI. 2 Error Handling (Catch) Create Variable: response Purpose: If the API call fails or returns an error, this block catches the error and provides an error message. Response The function returns the result of the Claude AI message generation, including the generated text. Success Response `json { "id": "msg_01H4x**", "type": "message", "role": "{role}", "content": [ { "type": "text", "text": "Neural networks are a type of machine learning algorithm ..." } ], "model": "claude-3-opus-20240229", "stopreason": "endturn", "stop_sequence": null, "usage": { "input_tokens": 23, "output_tokens": 219 } } ` Error Response `json { "type": "error", "error": { "error": "authentication_error", "message": "invalid x api key." } } ` Example Input `json { "prompt": "{prompt}", "maxtokens": "{maxtoken}", "assistantprompt": "{assistantprompt}" } ` Output `json { "id": "msg_01H4x**", "type": "message", "role": "{role}", "content": [ { "type": "text", "text": "Neural networks are a type of machine learning algorithm ..." } ], "model": "claude-3-opus-20240229", "stopreason": "endturn", "stop_sequence": null, "usage": { "input_tokens": 23, "output_tokens": 219 } } `

Brevo -> Send Email
Function Documentation: Brevo → Send Single Email Brevo API documentation Overview This function sends a single email using the Brevo (Sendinblue) API with HTML content. It requires inputs such as the API key, sender and receiver details, email content, and subject. The function validates and processes the input before making a request to the Brevo API. Inputs brevoapikey (registry/text) Required Description: API key for authenticating with Brevo API. Example: xkeysib-... from (object) Required Description: The sender's email address. Example: sender@example.com to (object) Required Description: The recipient's email address. Example: receiver@example.com message_html (text) Required Description: The HTML content to be sent. Example: <html><body><h1>Hello</h1></body></html> subject (text) Required Description: The subject of the email. Example: Welcome to our service! Function Stack Try / Catch Block Precondition: Check Valid HTML Content Description: Ensures the HTML content for the email is valid before proceeding. API Request to Sendinblue API Request to https://api.brevo.com/v3/smtp/email Purpose: Sends the email using the Brevo (Sendinblue) API. Return Value: The API response is stored as api_response. Create Variable: response Variable: var: response = var: api_response.response.result Purpose: Stores the API response for the SMS send operation. 2 Error Handling (Catch) Create Variable: response Purpose: If the API call fails or returns an error, this block catches the error and provides an error message. Response The function returns the result of the email send operation, including status and any relevant messages. Success Response `json { "messageId": "<202410100.1236169*@smtp-relay.mailin.fr>", } ` Error response `json { "message": "Key not found", "code": "unauthorized" } ` Example Input `json { "from":{ "from_name":"John", "from_email":"sohansakhare**@gmail.com" }, "to":{ "to_name":"David", "to_email":"sajankumar.*@unicoco*.com" }, "email_html":"<html><head></head><body><p>Hello world</p></body></html>", "subject":"abc" } ` Output `json { "messageId": "<202410100.1236169*@smtp-relay.mailin.fr>" } `

John Carmack Fast inverse Square root algorithm
John Carmack’s fast inverse square root function is a famous algorithm used in computer graphics, particularly in 3D rendering, to compute the inverse square root of a number quickly. It was notably used in the Quake III Arena game engine to speed up computations related to lighting, shading, and physics. The function approximates the value of 1/sqrt(x) very efficiently, significantly faster than the traditional method of calculating a square root followed by division.

Convert API -> Convert File
Function Documentation: Convert Api -> File Convert Convert API documentation Overview This function stack handles file conversion using ConvertAPI. The function allows users to input a file URL, specify the fromformat, toformat, and file_url and returns the converted file's URL. Inputs convertapikey (registry/text) Required Description: The API key used for authenticating the Convert API. Example: xkeysib-... from_format (enum) Required Check Valid Format: Description: The format to convert from (e.g., png, jpg, pdf, doc, xls, csv). Example: pdf to_format (enum) Required Description: The format to convert to (e.g., png, jpg, pdf, doc, xls, csv). Example: jpg file_url (text) Required Description: The URL of the file to be converted. Example: https://example.com/sample.jpg Function Stack Try / Catch Block Precondition: Checks File Format Description: It checks from format should be same as to format. API Request to https://v2.convertapi.com/convert/{fromformat}/to/{toformat} Purpose: Converts the file from the fromformat to the toformat using the file URL. Return Value: The API response is stored as api_response. Create Variable: response Variable: var: response = var: api_response.response.result Purpose: Stores the API response for the convert api . 2 Error Handling (Catch) Create Variable: response Purpose: If the API call fails or returns an error, this block catches the error and provides an error message. Response The function returns the URL of the converted file from ConvertAPI, including success or error messages. Success Response `json { "ConversionCost": 1, "Files": [ { "FileName": "0266554465.pdf", "FileExt": "pdf", "FileSize": 63923, "FileId": "wtj3krv14y87qzcoptgr9ytoj4a8evqx", "Url": "https://v2.convertapi.com/d/wtj3krv14y87qzcoptgr9ytoj4a8evqx/0266554465.pdf" } ] } ` Error Response `json { "code": "invalid_parameter", "message": "Unable to convert file. The provided file format is not supported." } ` Example Input `json { "from_format": "pdf", "to_format": "jpg", "file_url": "https://example.com/sample.pdf" } ` Output `json { "ConversionCost": 1, "Files": [ { "FileName": "0266554465.pdf", "FileExt": "pdf", "FileSize": 63923, "FileId": "wtj3krv14y87qzcoptgr9ytoj4a8evqx", "Url": "https://v2.convertapi.com/d/wtj3krv14y87qzcoptgr9ytoj4a8evqx/0266554465.pdf" } ] } `

Hubspot -> Update Contact
Function Documentation: HubSpot → Update Contact Overview This function allows you to edit an existing contact in HubSpot using specified input parameters. It involves setting environment variables, preparing the request with updated information, and handling the response from the HubSpot API. Inputs hubspotapikey (registry|text) Required Sensitive data Description: The API key for your HubSpot account. first_name (text) Description: The updated first name of the contact. last_name (text) Description: The updated last name of the contact. email (email) Description: The updated email address of the contact. company (text) Description: The updated company associated with the contact. lead_status (enum) Description: The updated lead status of the contact. Options: NEW OPEN IN_PROGRESS OPEN_DEAL UNQUALIFIED ATTEMPTEDTOCONTACT CONNECTED BAD_TIMING contact_owner (integer) Description: The updated owner of the contact. phone_number (text) Description: The updated phone number of the contact. contact_id (integer) Description: The unique identifier of the contact to be edited. additional_properties (json) Description: Additional properties in JSON format to be updated. Schema: `json { "additionalProp1": "string", "additionalProp2": "string", "additionalProp3": "string" } ` > [❗] You can clear a property value by passing an empty string. Example: {"company":""} . This will clear the value stored in the company field. Function Stack Set Properties Object Create Variable: properties_object Purpose: Sets properties object from input: additional_properties and other input fields. HubSpot API Request API Request to https://api.hubapi.com/crm/v3/objects/contacts/{contact_id} Purpose: Sends a PATCH request to update the specified contact in HubSpot. Create Variable Create Variable: inputss Purpose: Checks if the company input is null. Preconditions Precondition: hubspot_api.response.status == 200 Purpose: Ensures successful update of the contact with HTTP status code 200. Response The function returns the result from the HubSpot API response. Success response `json { "id": "123456789", "properties": { "company": "Xano", . . . "phone": "42" }, "createdAt": "2024-09-16T12:11:28.596Z", "updatedAt": "2024-09-23T13:41:47.246Z", "archived": false } ` Error message `json { "message":"Uh oh! Hubspot returned with an error: Property values were not valid: [{\"isValid\":false,\"message\":\"Property \\\"prop2\\\" does not exist\",\"error\":\"PROPERTYDOESNTEXIST\",\"name\":\"prop2\",\"localizedErrorMessage\":\"Property \\\"prop2\\\" does not exist\",\"portalId\":47373842},{\"isValid\":false,\"message\":\"Property \\\"prop1\\\" does not exist\",\"error\":\"PROPERTYDOESNTEXIST\",\"name\":\"prop1\",\"localizedErrorMessage\":\"Property \\\"prop1\\\" does not exist\",\"portalId\":47373842}]" } ` Example Input `json { "first_name": "Xano", "last_name": "Actions", "email": "actions@xano.com", "company": "Xano", "leadstatus": "OPENDEAL", "contact_owner": 0, "phone_number": "42", "contact_id": 123456789, "additional_properties": { "mobilephone":"1024" } ` Output `json { "id": "123456789", "properties": { "company": "Xano", . . . "phone": "42" }, "createdAt": "2024-09-16T12:11:28.596Z", "updatedAt": "2024-09-23T13:41:47.246Z", "archived": false } `

Hubspot -> Get Contact
Function Documentation: HubSpot → Get Contact Overview This function retrieves a specific contact from HubSpot using the contact's ID. It involves setting environment variables, preparing the request, and handling the response from the HubSpot API. Inputs id (integer) Description: The unique identifier of the contact to be retrieved. properties (text[]) Description: A list of contact properties to retrieve. Function Stack HubSpot API Request API Request to https://api.hubapi.com/crm/v3/objects/contacts/{id} Purpose: Sends a GET request to retrieve the specified contact from HubSpot. Preconditions Precondition: hubspot_api.response.status == 200 Purpose: Ensures successful retrieval of the contact with HTTP status code 200. Response The function returns the result from the HubSpot API response. Success response `json { "id": "12345", "properties": { "company": "HubSpot", "createdate": "2024-09-12T10:58:14.335Z", "hsobjectid": "12345", "lastmodifieddate": "2024-09-12T10:58:18.831Z" }, "createdAt": "2024-09-12T10:58:14.335Z", "updatedAt": "2024-09-12T10:58:18.831Z", "archived": false } ` Error response `json { "message": "Uh oh! Hubspot returned with an error: Authentication credentials not found. This API supports OAuth 2.0 authentication and you can find more details at https://developers.hubspot.com/docs/methods/auth/oauth-overview" } ` Example Input `json { "id": 123456, "properties": [ "company" ] } ` Output `json { "id": "123456", "properties": { "company": "UC", "createdate": "2024-09-23T13:30:40.386Z", "hsobjectid": "60968500829", "lastmodifieddate": "2024-09-23T13:31:43.044Z" }, "createdAt": "2024-09-23T13:30:40.386Z", "updatedAt": "2024-09-23T13:31:43.044Z", "archived": false } `

OpenAI -> Create a Chat Completion
Function Documentation: OpenAI -> Create a Chat Completion OpenAI API documentation Overview This function generates a chat completion using the OpenAI API based on a user-provided input text. It requires parameters such as the model & input message. The function validates environment variables and conditions before making an API request and processing the response. Inputs openaiapikey (registry|text) Required Sensitive data Description: The API key for your OpenAI account. model (enum) Required Description: Specifies the model to be used for generating the chat completion. Options: gpt-4o-mini (default) gpt-4o message (text) Required Description: The input message or prompt that will be sent to the OpenAI API for generating the chat completion. Function Stack OpenAI API Request API Request to https://api.openai.com Purpose: Sends a request to the OpenAI API using the specified model and message. Precondition: openaiapiresponse.status == 200 Purpose: Confirms that the API request was successful (HTTP status code 200). OpenAI API Response Create Variable: response Purpose: Stores the response from the OpenAI API. Response The function returns the generated chat completion Success response `json {"Barack Obama is 6 feet 1 inch tall (185 cm)."} ` Error response `json { "message": "Incorrect API key provided: ssk-None***GQPD. You can find your API key at https://platform.openai.com/account/api-keys." } ` Example Input `json { "model": "gpt-4o-mini", "message": "What is Obama's height?" } ` Response `json {"Barack Obama is 6 feet 1 inch tall (185 cm)."} `