All Parameters

All available parameters for the generate-content endpoint.

Here's a quick overview of all parameters. Keep scrolling for more details on each.

ParameterDescriptionTypeRequiredSuggested
Product
Version
contactEmailEmail address of the contactidentifierYesMVP
contactLinkedinUrlLinkedIn URL of the contactidentifierYesV3
userEmailEmail address of the useridentifierYesMVP
userLinkedinUrlLinkedIn URL of the useridentifierYesV3
additionalContextExtra information for customizing generated contentstringNoV2
contactNameOverwrite contact namestringNoV3
contactCompanyNameOverwrite contact's company namestringNoV3
contactCompanyUrlOverwrite contact's company URLstringNoV3
contentTypeType of content to generatestringYesMVP
contentToRewriteContent base for generationstringNoV4
customContentTypeCustom content output typestringNoV4
customWritingStyleWrite your own writing stylestringNoV4
disabledInsightsDisable specific insightsarrayNoV4
enabledInsightsOnly use specific insightsarrayNoV4
modelModel for content generationstringNoV3
nNumber of unique content pieces to generateintNoV3
languageDesired language for contentstringNoV3
salesAssetAdditional sales informationstringNoV3
sequenceNumberOfEmailsNumber of emails in sequenceintNoV4
userCompanyNameOverwrite user company namestringNoV3
userCompanyUrlOverwrite user company URLstringNoV3
userNameOverwrite user namestringNoV3
valuePropositionSet value propositionstringNoV3
wordCountApproximate word count for outputintNoV3
writingStyleWriting style for content generationstringNoV2

All Parameters

Identifiers

  • Contact identifier: either contactEmail or contactLinkedinUrl is required.
    • contactEmail: The email address of the contact (prospect) the user (seller) is reaching out to.
    • contactLinkedinUrl: The LinkedIn URL of the contact the user is reaching out to.
  • User identifier: either userEmail or userLinkedinUrl is required.
    • userEmail (required): The email address of the user the content is written on behalf of.
    • userLinkedinUrl: The LinkedIn URL of the user the content is written on behalf of..

Note - waterfall logic ensures that content still generates even if our system cannot identify the user or prospect's email address, so long as we can figure out their company from their domain, which is extracted from their email. This ensures a 99.8% success rate in generating content outputs.

additionalContext (optional): String. This field allows for further customization of the generated content by providing specific guidelines or data to be included in the message. The information should be passed in instruction format. For example, you could paste in a webpage and say "The prospect visited this web page pasted below, incorporate the topics into the email." This flexibility is powerful - you could incorporate intent data, mention past interactions logged in the CRM, or highlight any other relevant information. Character limit is 10,000.

contactName (optional): String. If provided, this overwrites the contact name that the system automatically finds. Our system will resolve this from nothing more than an email, but sometimes we can't find the person's name. Including this field increases the chance the email will output an A+ email where the name was matched. If it can't be found, the system will currently output [PROSPECT NAME].

contactCompanyName (optional): String. If provided, this overwrites the contact's company name that the system automatically finds.

contactCompanyUrl (optional): String. If provided, this overwrites the contact's current company URL that the system automatically resolves. This update affects the company name and all associated insights.

contentType (required): The type of content to be generated. Options are email, opener, sms, connectionRequest, callScript, sequence and custom contentType. When contentType is set to "sequence", each email in the sequence consumes 2 credits.

contentToRewrite (optional): String. This field allows you to input content you'd like to see rewritten, such as an email template or a full email. The system will use this as a base for generating new, personalized content. Now supports both individual emails and sequences. You can use variables like {{contactName}}, {{contactCompanyName}}, {{userName}}, and {{userCompanyName}} which will be automatically replaced.

  • For individual emails (when contentType = email), include the subject line starting with "Subject: " followed by the email body. Optimal results are typically achieved with less than 325 characters or 75 words.
{
  "contentType": "email",
  "contentToRewrite": "Subject: Exciting opportunity for {{contactName}} at {{contactCompanyName}}\n\nHi {{contactName}},\n\nI hope this email finds you well. I'm {{userName}} from {{userCompanyName}}, and I wanted to reach out about a potential collaboration.\n\nLooking forward to connecting,\n{{userName}}"
}
  • For sequences (when contentType = sequence), separate each email with "Step X" (where X is the step number). Only the first step in the sequence needs a subject line. All following steps are treated as replies within the same email thread, so they do not require a new subject line. This mimics a natural email conversation where subsequent messages build on the original context. Here's an example request: Suggested format:
{
  "contentType": "sequence",
  "sequenceNumberOfEmails": 3,
  "contentToRewrite": "Step 1\nSubject: Write hyper-personalized emails with AI\nBody: Hi {{prospectName}},\n\nI'm one of the Autobound Co-Founders. We just launched a tool that auto-generates hyper-personalized emails with AI (based on LinkedIn, news sources, company initiatives, shared experiences, job changes, & more).\n\nWorks with LinkedIn, Outreach, Salesloft, and Gmail, and signup takes <30 seconds.\n\nIt's the tool my co-founder and I always wanted (we're ex Oracle / Yelp sales), and we just raised $4M to make it happen.\n\nOpen to exploring whether Autobound can boost your team's open and reply rates?\n\nBest,\n{{userName}}\n\nStep 2\nBody: Friendly follow up, is writing thoughtful, personalized emails something your team struggles with?\n\nOver 4,000+ SDRs/AEs are using Autobound to maximize productivity (we're the #1 recommended AI-email writer on G2 with 200+ 5-star reviews).\n\nAny interest in exploring whether Autobound can help your team generate more replies?\n\nHere's a 1-min explainer vid if you'd like to learn more first.\n\nBest,\n{{userName}}"
}

While the example format provided above is recommended, the contentToRewrite parameter is designed to be flexible. The system doesn’t require your input to be formatted exactly as shown, as long as it can identify the general structure of each step, including the step number, subject, and body.

You can also further guide the AI's output by embedding specific instructions directly into your email content. These instructions should be placed within brackets [like this], allowing you to give the AI clear directives on how to enhance or personalize the email content.

For example, you can prompt the AI to include specific insights or data points that have been resolved for the prospect:

_"Im one of the Autobound Co-Founders, we just launched a tool that auto-generates hyper-personalized emails with AI (based on LinkedIn, news sources, company initiatives, shared experiences, job changes, & more).

For example, our system found:
[give 2-3 bullets of example insights that Autobound resolved for this prospect]

Interested in seeing how we could help your sales team generate hyper-relevant messaging 60-120x faster?"_

customContentType (optional): write out your own desired output, like "describe this prospect's personality based on their social media" or "list 20 ice breakers for an upcoming call". These can also be much longer prompts, where you can get creative with the output. Note that if customContentType is used, you'll need to set contentType to custom.

A request with nothing more than the mandated parameters would look like this.

import requests

url = 'https://api.autobound.ai/api/external/generate-content/[UPDATE-VERSION]'
headers = {
    'X-API-KEY': 'YOUR-API-KEY-HERE',
    'Content-Type': 'application/json'
}
data = {
    "contactEmail": "[email protected]",
    "userEmail": "[email protected]",
    "contentType": "email"
}

response = requests.post(url, headers=headers, json=data)
print(response.text)

and here's how you'd modify the parameters for a custom content type.

{
    "contactEmail": "[email protected]",
    "userEmail": "[email protected]",
	  "contentType": "custom",
    // this is required if customContentType is used.
    "customContentType": "write a pre-meeting email to prep for an account executive (the seller) with talking points and insights they can use on their upcoming call with the prospect."
}

disabledInsights (optional): Array of strings. This parameter specifies the insights you want to explicitly disable in the content generation. The full list can be found here.

When used, the insights listed in this array will be excluded from the response, while all other insights remain enabled or disabled based on the default settings. If both enabledInsights and disabledInsights are provided, the insights in enabledInsights take precedence, meaning they will be enabled even if they are also listed in disabledInsights. The API is designed to handle invalid or unrecognized insight types gracefully. If an invalid insight type is provided, it will be ignored, but a warning won't necessarily be included in the response.

"disabledInsights": ["10-K: Customer Relations_Dealing with negative feedback", "insight_invests_into"]

enabledInsights (optional): Array of strings. This parameter specifies the insights you want to explicitly enable in the content generation. When used, only the insights listed in this array will be included in the response, effectively overriding any default settings. The list can be found here.

model (optional): specifies the LLM used for content generation. Only works if contentType = sequence or email. If no value passed in, system uses fine tuned model for email, and opus for sequence. Options are: opus, sonnet_3.5, gpt4o, and fine_tuned

n(optional) The number of unique pieces of content to generate for the given request. This is set to 1 by default (it not included). The maximum is 3. The n parameter is not compatible with contentType: "sequence"

language (optional): specifies the desired language for content generation, ensuring tailored messaging in the recipient's preferred language. This is written out as free-form text, and defaults to "english" if not included.

salesAsset (optional): Information on a potentially longer piece of text like a related whitepaper, text from a sales deck, text from a web page, etc. Text or information a seller wants to include in their messaging, which could be derived from a webpage scrape focusing on a specific product, the pain points it solves for a certain industry, information on an upcoming event, etc. Character limit is 10,000.

sequenceNumberOfEmails (optional): Integer. Only applicable when contentType is "sequence". If not provided, defaults to 3. If sequenceNumberOfEmails or contentToRewrite is set but contentType is not "sequence", an error will be returned.

In the below example, we're asking the API to incorporate mention of a recent conversation Daniel had with Ryan's coworker (perhaps pulled from the CRM) with a 1,500 character (truncated for simplicity below) overview of an upcoming marketing event Autobound is hosting.

{
    "contactEmail": "[email protected]",
    "userEmail": "[email protected]",
    "contentType": "email",
    "language": "hebrew",
    "additionalContext": "Daniel previously had a conversation with Ryan's coworker Robert.",
    "salesAsset": "Join us for a Happy Hour at Dreamforce..."
}

In this example:

  • contactLinkedinUrl is the LinkedIn URL of Ryan Bask, the prospect. Note how it's okay that the contact ID is a LinkedIn URL whereas the user ID is an email.
  • userEmail is the email address of Daniel, the user making the request.
  • contentType is email, meaning an email will be written
  • language is Hebrew, meaning the output will be in Hebrew.
  • additionalContext includes an instruction to mention a previous conversation Daniel had with Ryan's coworker, Robert, which will guide the content generation process to include this particular context in the email.
  • salesAsset provides content about an upcoming happy hour event at Dreamforce, along with instructions for the AI on how to pitch this event in the email.

userCompanyName (optional): String. If provided, this overwrites the user's company name that the system automatically finds.

userCompanyUrl (optional): String. If provided, this overwrites the user's current company URL that the system automatically resolves. This update affects the company name and all associated insights.

userName (optional): String. If provided, this overwrites the user name that the system automatically finds.

valueProposition (optional): String. If provided, this acts as the userCompanyDescription / default value proposition. Our system keeps updated value propositions on 125,000+ companies by constantly reading company websites and pushing information through sophisticated data pipelines. This ensures up-to-date value propositions are available for real-time API requests. However, API users can pass in their own value proposition if they'd like to overwrite what the system would otherwise output. Character limit is the same as salesAsset (10,000). Content will be truncated if longer.

wordCount (optional): the number of words (approx) you'd like the output to be. If word count is not passed in, the system will determine how many words to generate. In most scenarios, this is around 80 for email, 20 for opener, 50 for connectionRequest, and 35 for sms. callScript is more dynamic.

writingStyle (optional): This parameter offers flexibility for clients to choose either a preset style or to create their own custom style. Character limit is 10,000. Clients can choose from a range of predefined writing styles. Available presets include:

  • challenger_sale: For a conversational and insightful approach.
  • clever_poet: To craft content with a creative, poetic twist.
  • cxo_pitch: For concise, executive-level pitches.
  • data_driven: For content backed by data, statistics, and clear ROI.
  • basho: For short, personalized content that follow Basho protocol.
  • why_you_why_now: Demonstrates a sense of urgency tied to the prospect's pain points.

Clients can also specify their own writing style, with customWritingStyle. When this is used, the parameter, writingStyle needs to be set to custom.

Let's walk through a few examples. Using a preset writing style...

{
  "contactEmail": "[email protected]",
  "userEmail": "[email protected]",
  "contentType": "email",
  "writingStyle": "challenger_sale"
}

In this example, the output will sound incorporate the challenger sales methodology. The word count will be determined by the model, unless wordCount is specified as well.

Using a custom writing style, and also specifying word count (remember, word count is optional).

{
  "contactEmail": "[email protected]",
  "userEmail": "[email protected]",
  "contentType": "email",
  "writingStyle": "custom",
  //needs to be set to custom if customWritingStyle is used.
  "customWritingStyle": "write at a 6th grade level in British English, very persuasively",
  "wordCount": 85
}

Using a custom writing style to write a custom contentType.

{
  "contactEmail": "[email protected]",
  "userEmail": "[email protected]",
  "contentType": "custom",
  "customContentType": "write a 3 email drip sequence that matches this JSON format... ",
  "writingStyle": "custom",
  "customWritingStyle": "use the following 2 emails to extract my tone and style...",
  "wordCount": 250
}

In this last, more advanced scenario, the client is prompting the system to generate multiple emails in a sequence that build on each other and also fit a certain JSON structure. Word count is set to 250, which is a nice, short total length for 3 separate emails (250 / 3 = ~83 words each).

Getting creative

Here's an example JSON showing the true power of Autobound's Personalization API!

{
  "contactEmail": "[email protected]",
  "userEmail": "[email protected]",
  "contentType": "email",
  "writingStyle": "custom",
  "customWritingStyle": "use the following 2 emails to extract my tone and style...",
      //using style extracted from example emails
  "salesAsset": "Autobound Logo Integrations Pricing Login Get Started Free Install...",
      // sales asset is a scrape of our AI-writer product's site page. About 500 words but the system can process intent very well.
  "model": "opus",
     // using opus will be slower, but the system will follow advanced instructions more closely.
  "additionalContext": "include the following deal notes from a closed lost opp from Hubspot: {dealNotes}",
      // context on the contact <> user relationship will be woven into the sequence
  "language": "spanish",
      // the output will be written in another language
  "n": 2,
      // 2 versions of the email will be written with different combinations of insights, the user can select which one they like more.
  "wordCount": 250
}

What’s Next