Skip to content

Create an opportunity

opportunity.create(OpportunityCreateParams**kwargs) -> OpportunityCreateResponse
POST/v1/opportunities

Creates a new opportunity record. The $name and $stage fields and the $account relationship are required.

After creation, Lightfield automatically generates an opportunity summary in the background. The $opportunityStatus field is read-only and cannot be set via the API. The $task and $note relationships are also read-only — manage them via the $opportunity relationship on the task, or the $account/$opportunity note relationships instead.

Supports idempotency via the Idempotency-Key header.

Required scope: opportunities:create

Rate limit category: Write

ParametersExpand Collapse
fields: Union[Dict[str, Union[str, float, bool, 3 more]]]

Field values for the new opportunity. System fields use a $ prefix (e.g. $name, $stage); custom attributes use their bare slug. Required: $name (string) and $stage (option ID or label). Fields of type SINGLE_SELECT or MULTI_SELECT accept either an option ID or label from the field's typeConfiguration.options — call the definitions endpoint to discover available fields and options. See Fields and relationships for value type details.

Accepts one of the following:
Dict[str, Union[str, float, bool, 3 more]]
Accepts one of the following:
str
float
bool
SequenceNotStr[Union[str, float, bool, 3 more]]
Accepts one of the following:
str
float
bool
Iterable[object]
Dict[str, object]
Dict[str, Union[str, float, bool, 3 more]]
Accepts one of the following:
str
float
bool
Iterable[object]
Dict[str, object]
relationships: Union[Dict[str, Union[str, SequenceNotStr[str]]]]

Relationships to set on the new opportunity. System relationships use a $ prefix (e.g. $account, $owner); custom relationships use their bare slug. $account is required. Each value is a single entity ID or an array of IDs. Call the definitions endpoint to list available relationship keys.

Accepts one of the following:
Dict[str, Union[str, SequenceNotStr[str]]]
Accepts one of the following:
str
SequenceNotStr[str]
ReturnsExpand Collapse
class OpportunityCreateResponse:
id: str

Unique identifier for the entity.

created_at: str

ISO 8601 timestamp of when the entity was created.

fields: Dict[str, Fields]

Map of field names to their typed values. System fields are prefixed with $ (e.g. $name, $email); custom attributes use their bare slug.

value: Union[str, float, bool, 3 more]

The field value, or null if unset.

Accepts one of the following:
str
float
bool
List[Union[str, float, bool, 3 more]]
Accepts one of the following:
str
float
bool
List[Optional[object]]
Dict[str, object]
Dict[str, Union[str, float, bool, 3 more]]
Accepts one of the following:
str
float
bool
List[Optional[object]]
Dict[str, object]
value_type: Literal["ADDRESS", "CHECKBOX", "CURRENCY", 11 more]

The data type of the field.

Accepts one of the following:
"ADDRESS"
"CHECKBOX"
"CURRENCY"
"DATETIME"
"EMAIL"
"FULL_NAME"
"MARKDOWN"
"MULTI_SELECT"
"NUMBER"
"SINGLE_SELECT"
"SOCIAL_HANDLE"
"TELEPHONE"
"TEXT"
"URL"
relationships: Dict[str, Relationships]

Map of relationship names to their associated entities. System relationships are prefixed with $ (e.g. $owner, $contact).

cardinality: str

Whether the relationship is has_one or has_many.

object_type: str

The type of the related object (e.g. account, contact).

values: List[str]

IDs of the related entities.

Create an opportunity

from lightfield import Lightfield

client = Lightfield(
    api_key="My API Key",
)
opportunity_create_response = client.opportunity.create(
    fields={
        "foo": "string"
    },
    relationships={
        "foo": "string"
    },
)
print(opportunity_create_response.id)
{
  "id": "id",
  "createdAt": "createdAt",
  "fields": {
    "foo": {
      "value": "string",
      "valueType": "ADDRESS"
    }
  },
  "httpLink": "httpLink",
  "relationships": {
    "foo": {
      "cardinality": "cardinality",
      "objectType": "objectType",
      "values": [
        "string"
      ]
    }
  }
}
Returns Examples
{
  "id": "id",
  "createdAt": "createdAt",
  "fields": {
    "foo": {
      "value": "string",
      "valueType": "ADDRESS"
    }
  },
  "httpLink": "httpLink",
  "relationships": {
    "foo": {
      "cardinality": "cardinality",
      "objectType": "objectType",
      "values": [
        "string"
      ]
    }
  }
}