Appbricx
Docs
FeaturesPricingStart free

Get started

OverviewWhat Appbricx isQuickstart with a coding agentQuickstart with the builderCore concepts

Guides

Data and tablesAccess and rolesBusiness rulesSign-inCustom screensRealtime and topicsWorkflows, schedules and webhooksServer functionsAI in your appPaymentsFilesMessagesIntegrationsVerifyPublishing, domains and rollbackOperating your appExport and self-hostSelf-host install

Tutorials

Build a booking app with Claude CodeMulti-user todo listClient portalSlack on new sign-upTemplates

Reference

Reference homeFrontend SDKHTTP APIMCP toolsCLIIntegrations catalogContract formatAI key resolutionRun Appbricx locally

Freshsales

Create contacts, manage deals, and track your sales in Freshsales.

CRM and salesAPI key2 actionsAll integrations

On this page
  1. Connect
  2. Call it from a workflow
  3. Actions (2)
  4. freshsales_create_contact
  5. custom_api_call
  6. Details

Connect

Auth type: API key (secret_text). Paste the API key (or token) from the provider's settings into the connect dialog. It is encrypted at rest and only decrypted on the server when an action runs.

  • In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
  • For every project in a workspace: Workspace settings, Integrations.
  • Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.

Call it from a workflow

Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.

Native workflow
// .workflow.js (native ctx)
export async function run(ctx) {
  const res = await ctx.integrations.invoke("freshsales", "freshsales_create_contact", {
    "email": "<email>"
  });
  if (!res.success) throw new Error(res.error);
  ctx.log.info("Freshsales answered", { output: res.output });
}
defineWorkflow module
// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";

export default defineWorkflow({
  id: "freshsales-freshsales-create-contact",
  name: "Freshsales: Create Contact",
  description: "Calls Freshsales when a row is created.",
  trigger: { type: "entity_event", entity: "tickets", event: "created" },
  async run(ctx, event) {
    const res = await ctx.integrations.call("freshsales", {
      "action": "freshsales_create_contact",
      "email": "<email>"
    }) as { success: boolean; error?: string };
    if (!res.success) throw new Error(res.error);
  },
});
From an app (connector proxy)
curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/freshsales/freshsales_create_contact" \
  -H "Authorization: Bearer $APP_KEY" \
  -H "content-type: application/json" \
  -d '{"props":{"email":"<email>"}}'

Actions

freshsales_create_contactin catalog

Create Contact. Add new contact in Freshsales CRM

Also accepted as create_contact.

InputTypeDescription
first_nameoptionaltextFirst name of the contact
last_nameoptionaltextLast name of the contact
job_titleoptionaltextDesignation of the contact in the account they belong to
emailrequiredtextPrimary email address of the contact
work_numberoptionaltextWork phone number of the contact
mobile_numberoptionaltextMobile phone number of the contact
addressoptionaltextAddress of the contact
cityoptionaltextCity that the contact belongs to
stateoptionaltextState that the contact belongs to
zipcodeoptionaltextZipcode of the region that the contact belongs to
countryoptionaltextCountry that the contact belongs to
territory_idoptionaltextID of the territory that the contact belongs to
owner_idoptionaltextID of the user to whom the contact has been assigned
subscription_statusoptionaltextStatus of subscription that the contact is in.
mediumoptionaltextThe medium that led your contact to your website/web app
campaign_idoptionaltextThe campaign that led your contact to your web app.
keywordoptionaltextThe keywords that the contact used to reach your website/web app
time_zoneoptionaltextTimezone that the contact belongs to
facebookoptionaltextFacebook username of the contact
twitteroptionaltextTwitter username of the contact

custom_api_call

Custom API Call. Make a custom API call to a specific endpoint

InputTypeDescription
urlrequiredobject (depends on other props)url
methodrequiredone of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD"Method
headersrequiredobjectAuthorization headers are injected automatically from your connection.
queryParamsrequiredobjectQuery Parameters
body_typeoptionalone of "none" | "json" | "form_data" | "raw"Body Type
bodyoptionalobject (depends on other props)Body
response_is_binaryoptionalbooleanEnable for files like PDFs, images, etc.
failsafeoptionalbooleanNo Error on Failure
timeoutoptionalnumberTimeout (in seconds)
followRedirectsoptionalbooleanFollow redirects

Details

Id
freshsales
Category
CRM and sales
Tags
crm, sales, contacts, deals, freshworks
Package
@activepieces/piece-freshsales@0.4.4
Tier
Community

On this page

  1. Connect
  2. Call it from a workflow
  3. Actions (2)
  4. freshsales_create_contact
  5. custom_api_call
  6. Details
Appbricx

The backend, runtime and hosting for apps your coding agent builds. On our cloud, in yours, or on your own servers.

Features

Coding agents and MCPVerify testingBuilder consolePostgres databaseData APIRealtimeRow-level securitySign-in and authPaymentsWorkflows and jobsAI in your appIntegrationsBackups and rollbackHosting and domainsSelf-host and exportAll features

Product

ShowcasePricingFor coding agentsTemplatesPrivate cloudBring your own AI keyFAQ

Compare

Appbricx vs SupabaseLovable alternativeBolt alternativeFor freelancersFor agencies

Resources

DocumentationReferenceBlogSupportContact

© 2026 Appbricx. All rights reserved.

TermsPrivacyCookiesAcceptable Use