Skip to content

Latest commit

 

History

History
521 lines (445 loc) · 27.5 KB

README.md

File metadata and controls

521 lines (445 loc) · 27.5 KB

Opportunities

(Crm.Opportunities)

Overview

Available Operations

  • List - List opportunities
  • Create - Create opportunity
  • Get - Get opportunity
  • Update - Update opportunity
  • Delete - Delete opportunity

List

List opportunities

Example Usage

package main

import(
	"context"
	"os"
	sdkgo "github.com/apideck-libraries/sdk-go"
	"github.com/apideck-libraries/sdk-go/models/components"
	"github.com/apideck-libraries/sdk-go/models/operations"
	"log"
)

func main() {
    ctx := context.Background()
    
    s := sdkgo.New(
        sdkgo.WithSecurity(os.Getenv("APIDECK_API_KEY")),
        sdkgo.WithConsumerID("test-consumer"),
        sdkgo.WithAppID("dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX"),
    )

    res, err := s.Crm.Opportunities.List(ctx, operations.CrmOpportunitiesAllRequest{
        ServiceID: sdkgo.String("salesforce"),
        Filter: &components.OpportunitiesFilter{
            Status: sdkgo.String("Completed"),
            MonetaryAmount: sdkgo.Float64(75000),
        },
        Sort: &components.OpportunitiesSort{
            By: components.OpportunitiesSortByCreatedAt.ToPointer(),
        },
        PassThrough: map[string]any{
            "search": "San Francisco",
        },
        Fields: sdkgo.String("id,updated_at"),
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.GetOpportunitiesResponse != nil {
        for {
            // handle items

            res, err = res.Next()

            if err != nil {
                // handle error
            }

            if res == nil {
                break
            }
        }
    }
}

Parameters

Parameter Type Required Description
ctx context.Context ✔️ The context to use for the request.
request operations.CrmOpportunitiesAllRequest ✔️ The request object to use for the request.
opts []operations.Option The options for this request.

Response

*operations.CrmOpportunitiesAllResponse, error

Errors

Error Type Status Code Content Type
apierrors.BadRequestResponse 400 application/json
apierrors.UnauthorizedResponse 401 application/json
apierrors.PaymentRequiredResponse 402 application/json
apierrors.NotFoundResponse 404 application/json
apierrors.UnprocessableResponse 422 application/json
apierrors.APIError 4XX, 5XX */*

Create

Create opportunity

Example Usage

package main

import(
	"context"
	"os"
	sdkgo "github.com/apideck-libraries/sdk-go"
	"github.com/apideck-libraries/sdk-go/models/components"
	"github.com/apideck-libraries/sdk-go/types"
	"github.com/apideck-libraries/sdk-go/models/operations"
	"log"
)

func main() {
    ctx := context.Background()
    
    s := sdkgo.New(
        sdkgo.WithSecurity(os.Getenv("APIDECK_API_KEY")),
        sdkgo.WithConsumerID("test-consumer"),
        sdkgo.WithAppID("dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX"),
    )

    res, err := s.Crm.Opportunities.Create(ctx, operations.CrmOpportunitiesAddRequest{
        ServiceID: sdkgo.String("salesforce"),
        Opportunity: components.OpportunityInput{
            Title: "New Rocket",
            PrimaryContactID: sdkgo.String("12345"),
            Description: sdkgo.String("Opportunities are created for People and Companies that are interested in buying your products or services. Create Opportunities for People and Companies to move them through one of your Pipelines."),
            Type: sdkgo.String("Existing Customer - Upgrade"),
            MonetaryAmount: sdkgo.Float64(75000),
            Currency: components.CurrencyUsd.ToPointer(),
            WinProbability: sdkgo.Float64(40),
            CloseDate: types.MustNewDateFromString("2020-10-30"),
            LossReasonID: sdkgo.String("12345"),
            LossReason: sdkgo.String("No budget"),
            WonReasonID: sdkgo.String("12345"),
            WonReason: sdkgo.String("Best pitch"),
            PipelineID: sdkgo.String("12345"),
            PipelineStageID: sdkgo.String("12345"),
            SourceID: sdkgo.String("12345"),
            LeadID: sdkgo.String("12345"),
            LeadSource: sdkgo.String("Website"),
            ContactID: sdkgo.String("12345"),
            ContactIds: []string{
                "12345",
            },
            CompanyID: sdkgo.String("12345"),
            CompanyName: sdkgo.String("Copper"),
            OwnerID: sdkgo.String("12345"),
            Priority: sdkgo.String("None"),
            Status: sdkgo.String("Open"),
            StatusID: sdkgo.String("12345"),
            Tags: []string{
                "New",
            },
            CustomFields: []components.CustomField{
                components.CustomField{
                    ID: sdkgo.String("2389328923893298"),
                    Name: sdkgo.String("employee_level"),
                    Description: sdkgo.String("Employee Level"),
                    Value: sdkgo.Pointer(components.CreateValueFour(
                        components.Four{},
                    )),
                },
                components.CustomField{
                    ID: sdkgo.String("2389328923893298"),
                    Name: sdkgo.String("employee_level"),
                    Description: sdkgo.String("Employee Level"),
                    Value: sdkgo.Pointer(components.CreateValueBoolean(
                        true,
                    )),
                },
            },
            StageLastChangedAt: types.MustNewTimeFromString("2020-09-30T07:43:32.000Z"),
            PassThrough: []components.PassThroughBody{
                components.PassThroughBody{
                    ServiceID: "<id>",
                    ExtendPaths: []components.ExtendPaths{
                        components.ExtendPaths{
                            Path: "$.nested.property",
                            Value: map[string]any{
                                "TaxClassificationRef": map[string]any{
                                    "value": "EUC-99990201-V1-00020000",
                                },
                            },
                        },
                    },
                },
            },
        },
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.CreateOpportunityResponse != nil {
        // handle response
    }
}

Parameters

Parameter Type Required Description
ctx context.Context ✔️ The context to use for the request.
request operations.CrmOpportunitiesAddRequest ✔️ The request object to use for the request.
opts []operations.Option The options for this request.

Response

*operations.CrmOpportunitiesAddResponse, error

Errors

Error Type Status Code Content Type
apierrors.BadRequestResponse 400 application/json
apierrors.UnauthorizedResponse 401 application/json
apierrors.PaymentRequiredResponse 402 application/json
apierrors.NotFoundResponse 404 application/json
apierrors.UnprocessableResponse 422 application/json
apierrors.APIError 4XX, 5XX */*

Get

Get opportunity

Example Usage

package main

import(
	"context"
	"os"
	sdkgo "github.com/apideck-libraries/sdk-go"
	"github.com/apideck-libraries/sdk-go/models/operations"
	"log"
)

func main() {
    ctx := context.Background()
    
    s := sdkgo.New(
        sdkgo.WithSecurity(os.Getenv("APIDECK_API_KEY")),
        sdkgo.WithConsumerID("test-consumer"),
        sdkgo.WithAppID("dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX"),
    )

    res, err := s.Crm.Opportunities.Get(ctx, operations.CrmOpportunitiesOneRequest{
        ID: "<id>",
        ServiceID: sdkgo.String("salesforce"),
        Fields: sdkgo.String("id,updated_at"),
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.GetOpportunityResponse != nil {
        // handle response
    }
}

Parameters

Parameter Type Required Description
ctx context.Context ✔️ The context to use for the request.
request operations.CrmOpportunitiesOneRequest ✔️ The request object to use for the request.
opts []operations.Option The options for this request.

Response

*operations.CrmOpportunitiesOneResponse, error

Errors

Error Type Status Code Content Type
apierrors.BadRequestResponse 400 application/json
apierrors.UnauthorizedResponse 401 application/json
apierrors.PaymentRequiredResponse 402 application/json
apierrors.NotFoundResponse 404 application/json
apierrors.UnprocessableResponse 422 application/json
apierrors.APIError 4XX, 5XX */*

Update

Update opportunity

Example Usage

package main

import(
	"context"
	"os"
	sdkgo "github.com/apideck-libraries/sdk-go"
	"github.com/apideck-libraries/sdk-go/models/components"
	"github.com/apideck-libraries/sdk-go/types"
	"github.com/apideck-libraries/sdk-go/models/operations"
	"log"
)

func main() {
    ctx := context.Background()
    
    s := sdkgo.New(
        sdkgo.WithSecurity(os.Getenv("APIDECK_API_KEY")),
        sdkgo.WithConsumerID("test-consumer"),
        sdkgo.WithAppID("dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX"),
    )

    res, err := s.Crm.Opportunities.Update(ctx, operations.CrmOpportunitiesUpdateRequest{
        ID: "<id>",
        ServiceID: sdkgo.String("salesforce"),
        Opportunity: components.OpportunityInput{
            Title: "New Rocket",
            PrimaryContactID: sdkgo.String("12345"),
            Description: sdkgo.String("Opportunities are created for People and Companies that are interested in buying your products or services. Create Opportunities for People and Companies to move them through one of your Pipelines."),
            Type: sdkgo.String("Existing Customer - Upgrade"),
            MonetaryAmount: sdkgo.Float64(75000),
            Currency: components.CurrencyUsd.ToPointer(),
            WinProbability: sdkgo.Float64(40),
            CloseDate: types.MustNewDateFromString("2020-10-30"),
            LossReasonID: sdkgo.String("12345"),
            LossReason: sdkgo.String("No budget"),
            WonReasonID: sdkgo.String("12345"),
            WonReason: sdkgo.String("Best pitch"),
            PipelineID: sdkgo.String("12345"),
            PipelineStageID: sdkgo.String("12345"),
            SourceID: sdkgo.String("12345"),
            LeadID: sdkgo.String("12345"),
            LeadSource: sdkgo.String("Website"),
            ContactID: sdkgo.String("12345"),
            ContactIds: []string{
                "12345",
            },
            CompanyID: sdkgo.String("12345"),
            CompanyName: sdkgo.String("Copper"),
            OwnerID: sdkgo.String("12345"),
            Priority: sdkgo.String("None"),
            Status: sdkgo.String("Open"),
            StatusID: sdkgo.String("12345"),
            Tags: []string{
                "New",
            },
            CustomFields: []components.CustomField{
                components.CustomField{
                    ID: sdkgo.String("2389328923893298"),
                    Name: sdkgo.String("employee_level"),
                    Description: sdkgo.String("Employee Level"),
                    Value: sdkgo.Pointer(components.CreateValueFour(
                        components.Four{},
                    )),
                },
                components.CustomField{
                    ID: sdkgo.String("2389328923893298"),
                    Name: sdkgo.String("employee_level"),
                    Description: sdkgo.String("Employee Level"),
                    Value: sdkgo.Pointer(components.CreateValueBoolean(
                        true,
                    )),
                },
                components.CustomField{
                    ID: sdkgo.String("2389328923893298"),
                    Name: sdkgo.String("employee_level"),
                    Description: sdkgo.String("Employee Level"),
                    Value: sdkgo.Pointer(components.CreateValueArrayOf6(
                        []components.Six{
                            components.Six{},
                            components.Six{},
                        },
                    )),
                },
            },
            StageLastChangedAt: types.MustNewTimeFromString("2020-09-30T07:43:32.000Z"),
            PassThrough: []components.PassThroughBody{
                components.PassThroughBody{
                    ServiceID: "<id>",
                    ExtendPaths: []components.ExtendPaths{
                        components.ExtendPaths{
                            Path: "$.nested.property",
                            Value: map[string]any{
                                "TaxClassificationRef": map[string]any{
                                    "value": "EUC-99990201-V1-00020000",
                                },
                            },
                        },
                        components.ExtendPaths{
                            Path: "$.nested.property",
                            Value: map[string]any{
                                "TaxClassificationRef": map[string]any{
                                    "value": "EUC-99990201-V1-00020000",
                                },
                            },
                        },
                        components.ExtendPaths{
                            Path: "$.nested.property",
                            Value: map[string]any{
                                "TaxClassificationRef": map[string]any{
                                    "value": "EUC-99990201-V1-00020000",
                                },
                            },
                        },
                    },
                },
                components.PassThroughBody{
                    ServiceID: "<id>",
                    ExtendPaths: []components.ExtendPaths{
                        components.ExtendPaths{
                            Path: "$.nested.property",
                            Value: map[string]any{
                                "TaxClassificationRef": map[string]any{
                                    "value": "EUC-99990201-V1-00020000",
                                },
                            },
                        },
                    },
                },
            },
        },
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.UpdateOpportunityResponse != nil {
        // handle response
    }
}

Parameters

Parameter Type Required Description
ctx context.Context ✔️ The context to use for the request.
request operations.CrmOpportunitiesUpdateRequest ✔️ The request object to use for the request.
opts []operations.Option The options for this request.

Response

*operations.CrmOpportunitiesUpdateResponse, error

Errors

Error Type Status Code Content Type
apierrors.BadRequestResponse 400 application/json
apierrors.UnauthorizedResponse 401 application/json
apierrors.PaymentRequiredResponse 402 application/json
apierrors.NotFoundResponse 404 application/json
apierrors.UnprocessableResponse 422 application/json
apierrors.APIError 4XX, 5XX */*

Delete

Delete opportunity

Example Usage

package main

import(
	"context"
	"os"
	sdkgo "github.com/apideck-libraries/sdk-go"
	"github.com/apideck-libraries/sdk-go/models/operations"
	"log"
)

func main() {
    ctx := context.Background()
    
    s := sdkgo.New(
        sdkgo.WithSecurity(os.Getenv("APIDECK_API_KEY")),
        sdkgo.WithConsumerID("test-consumer"),
        sdkgo.WithAppID("dSBdXd2H6Mqwfg0atXHXYcysLJE9qyn1VwBtXHX"),
    )

    res, err := s.Crm.Opportunities.Delete(ctx, operations.CrmOpportunitiesDeleteRequest{
        ID: "<id>",
        ServiceID: sdkgo.String("salesforce"),
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.DeleteOpportunityResponse != nil {
        // handle response
    }
}

Parameters

Parameter Type Required Description
ctx context.Context ✔️ The context to use for the request.
request operations.CrmOpportunitiesDeleteRequest ✔️ The request object to use for the request.
opts []operations.Option The options for this request.

Response

*operations.CrmOpportunitiesDeleteResponse, error

Errors

Error Type Status Code Content Type
apierrors.BadRequestResponse 400 application/json
apierrors.UnauthorizedResponse 401 application/json
apierrors.PaymentRequiredResponse 402 application/json
apierrors.NotFoundResponse 404 application/json
apierrors.UnprocessableResponse 422 application/json
apierrors.APIError 4XX, 5XX */*